单链表 无头节点
来源:互联网 发布:java 私钥加密证书 编辑:程序博客网 时间:2024/04/27 17:13
单链表 无头节点
就这书上代码敲了一边,加深印象,没有头结点的时候插入第一个就有所不同了,而删除时要找到前一个,注意current->link==null 就这样。
代码
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;struct linknode{ int data; linknode *link; linknode(int a,linknode* p=NULL) { data=a; link=p; }};class List{private: linknode* first;public: bool Insert(int i,int &x); bool Remove(int i,int &x);};bool List::Insert(int i,int &x)//插到i之后,如果i=0则插到第一个之前{ if(first==NULL||i==0) { linknode *newnode=new linknode(x); if(newnode==NULL) { cerr<<"错误!\n"; exit(1); } newnode->link=first; first=newnode; } else { linknode *current=first; for(int k=1; k<i; k++) { if(current==NULL) break; else current=current->link; } if(current==NULL) { cerr<<"无效\n"; return false; } else { linknode *newnode=new linknode(x); newnode->link=current->link; current->link=newnode; } } return true;}bool List::Remove(int i,int &x){ linknode *del,*current; if(i<=i) { del=first; first=first->link; } else { current=first; for(int k=1; k<i-1; k++) if(current==NULL) break; else current=current->link; if(current==NULL||current->link==NULL) { cerr<<"无效\n"; return false; } del=current->link; current->link=del->link; } x=del->data; delete del; return true;}//在插入操作时,注意空表或者第一个之前。在删除操作时,注意删除第一个节点,以及代码的简便。int main(){ return 0;}
0 0
- 单链表 无头节点
- 【数据结构】单链表(无头节点)
- 单链表(无头节点)的实现
- 简单的无头节点单链表
- C语言实现无头节点单链表
- 2.17-比较有头节点的单链表与无头节点插入元素的区别;
- 有/无头节点的单链表的创建(尾插法)
- 16 - 10 - 31 无头节点 单链表 ------《c primer plus》
- C语言实现无头节点的单链表
- 单链表中的冒泡排序(无头节点)
- 数据实验7倒置无头节点单链表
- 链式存储线性表(无头节点)
- 单向无头节点链表操作
- 单链表(无头结点)
- 无头结点单链表
- 在无头节点的单链表里删除元素
- 简单数据结构之链表(无头节点)
- 线性表的链式存储结构(无头节点)
- python 写的str 解决dos2unix问题
- 【Node.js基础篇】(九)使用readline模块实现Node.js的输入输出
- linearLayout 和 relativeLayout的属性区别(转)
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- iOS开发之 面向对象的三大特征以及字符串的处理
- 单链表 无头节点
- SDUTOJ 3306 英文题看不懂
- Java类锁和对象锁
- 求集合/字符串中的所有组合 (C语言)
- 初涉ios内存
- [HDU 2844 Coins]DP+二进制优化+多重背包
- 2015多校联合第八场hdu5389Zero Escape DP
- Spring MVC介绍
- 网络工具——ss