带头单链表删除特定元素实现
2014-06-27 16:50
141 查看
要求:输入链表元素,再输入需要删除的元素,最后显示删除元素后的链表元素
例如:
输入:3->4->7->3->4
3
输出:4->7->4
实现代码如下:
例如:
输入:3->4->7->3->4
3
输出:4->7->4
实现代码如下:
#include<iostream> using namespace std; struct node { int data; node * next; }; node * creat_link(int const n) { node * head, * s, * p; p = head = (node *)malloc(sizeof(node)); for(int i = 0; i < n; i++) { int x; cin >> x; s = (node *)malloc(sizeof(node)); s->data = x; p->next = s; p = s; } p->next = NULL; return head; } int show(node * head) { if(head == NULL) return -1; node * p = head->next; while(p->next != NULL) { cout << p->data << ends; p = p->next; } cout << p->data << endl; return 0; } node * del(node * head, int x) { if((head == NULL) || (head->next == NULL)) return NULL; node * r = NULL; node * p = head; while(p->next != NULL) { if(p->next->data == x) { r = p->next; p->next = p->next->next; free(r); } else p = p->next; } return head; } int main() { int n; cin >> n; //cout << "n = " << n << endl; node * head = creat_link(n); //show(head); int m; cin >> m; del(head, m); show(head); system("pause"); return 0; }
相关文章推荐
- LeeCode 删除单链表中的某一特定值元素
- 删除线性表指定位置的元素(单链表实现)
- 【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】
- c语言实现对传统单链表的创建、添加 遍历 删除 反转元素操作
- (2)单链表的操作 ① 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数
- 在不带头结点的单链表中删除特定元素
- 输入一组整型元素序列,使用尾插法建立一个带有头结点的单链表。 ② 实现该线性表的遍历。 ③ 在该单链表的第i个元素前插入一个整数。 ④ 删除该单链表中的第i个元素,其值通过参数将其返回。 ⑤ 建立两个
- Java 基本数组删除特定元素的实现方法
- 编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
- 单链表应用举例(利用单链表的基本运算,实现如果在A单链表中出现的元素在B单链表中也出现,则将A中的元素删除)
- 用C#实现单链表(取第i个结点元素,删除第i个结点)
- 数据结构-链表实现删除全部特定元素x
- PHP实现删除数组中的特定元素
- javascript的数组元素,为Array增加两个函数,实现删除功能
- 单链表的插入和删除 C++实现
- CPtrList操作--插入,删除特定元素,删除全部
- 单链表实现删除最小节点的算法
- 单链表实现删除最小节点的算法
- 数据结构单链表实现插入删除查找
- 如何在SQL Server 2005中使用作业实现备份和特定删除