试编写在无头结点的单链表上实现线性表的插入操作的算法,并和带头结点的单链表上的插入操作的算法进行比较
2016-10-05 10:08
405 查看
无头结点,头指针为 head
有头结点 first
void LinkList<DataType>::Insert(int i, DataType x) { p = head; int count = 1; if(i == 1) { s = new Node; s->data = x; s->next = head; head = s; } else { while(p != NULL && count < i - 1) { p = p->next; count++; } if(p == NULL) cout<<"你输入的位置超出了范围!"; else { s = new Node; s->data = x; s->next = p->next; p->next = s; } } }
有头结点 first
void LinkList<DataType>::Insert(int i, DataType x) { p = first; int count = 0; while(p != NULL && count < i - 1) { p = p->next; count++; } if(p == NULL) cout<<"你输入的位置超出了范围!"; else { s = new Node; s->data = x; s->next = p->next; p->next = s; } }
相关文章推荐
- 编写算法实现建立一个带头结点的含n个元素的双向循环链表H,并在链表H中的第i个位置插入一个元素e
- 数据结构 P38 算法实现 在带头结点的单链表的第i个元素插入元素e
- 从键盘读入n个整数(升序),请编写算法实现: 建立带表头结点的单链表; 显示单链表,(形如:H->10->20->30->40); 在有序单链表中插入新的数据元素x; 将单链表就地逆
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- 带头结点的链表实现线性表的基本操作
- 数据结构(5)线性表之链表C++实现带头结点的单链表合并
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 数据结构——带头结点链表和不带头结点链表操作比较
- 2.14在带头结点的单链表中进行Length操作
- 假设以带头结点的循环链表表示队列, 并且只设一个指针指向队尾元素结点(注意不设头指针) 试编写相应的队列初始化,入队列和出队列的算法
- c语言实现--带头结点单链表操作
- 【LeetCode-面试算法经典-Java实现】【025-Reverse Nodes in k-Group(单链表中k个结点一组进行反转)】
- C语言实现双向非循环链表(带头结点尾结点)的节点插入
- 算法与数据结构--实现线性表的插入操作--算法2.3
- 用JAVA语言,编写一个链表类(双向链表),实现插入,删除,查找操作
- 线性表——带头结点单链表的实现
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- 对带头结点的单链表实现就地逆置的算法分析
- 线性表的基本操作实现(基于链表,有头结点)