c++ 编程:输入n及n个整数构建成一个单链表,输出原始链表。 1)输入待

c++编程:输入n及n个整数构建成一个单链表,输出原始链表。1)输入待查值x,查询该链表中是否存在x。2)若存在,将x删除(若有多个结点值为x,只删除第一个值为x结点即可... c++
编程:输入n及n个整数构建成一个单链表,输出原始链表。
1)输入待查值x,查询该链表中是否存在x。
2)若存在,将x删除(若有多个结点值为x,只删除第一个值为x结点即可),输出处理后的链表。若不存在,输出不存在的提示信息。
展开
 我来答
xoaxa
2017-03-15 · TA获得超过8613个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3712万
展开全部

#include <iostream>

using namespace std;

typedef int element;

typedef struct node {
element data;
struct node *next;
}*List,*pNode,Node;

List GetEmtyList() {
pNode head = new Node;
head->next = NULL;
return head;
}

int CreatList(List head,element n) {
pNode p = head;
pNode newnode = new Node;
if(newnode == NULL)return 0;
newnode->data = n;
newnode->next = NULL;
while(p->next) p = p->next;
p->next = newnode;
return 1;
}

int EraseList(List head,element x) {
pNode q,p = head;
while(p->next) {
if(p->next->data == x) {
q = p->next;
p->next = q->next;
delete q;
return 1;
}
p = p->next;
}
return 0;
}

void ShowList(List head) {
pNode p = head->next;
while(p) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
int main() {
int x,elem;
List head = GetEmtyList();
cout << "输入元素(0 结束输入过程)";
do {
cin >> elem;
if(elem == 0) continue;
CreatList(head,elem);
cout << "输入元素(0 结束输入过程):";
}while(elem);
ShowList(head);
cout << "输入欲删除的元素: ";
cin >> x;
EraseList(head,x);
ShowList(head);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式