ZKX's LAB

c++ 用模板类创建一个单向链表 实现链表节点的增加、删除、输入 怎么写啊 单向链表删除多余重复节点

2021-04-07知识2

二级C,举一个简单单向链表的插入和删除节点的例子 数据结构里 我考全国二级C语言,考点里有一个“在链表中插入和删除结点”,可是课本上这块没介绍,我只会简单单向链表的创建和遍历。我有上网搜过,可是网上那些都是比较。

c++ 用模板类创建一个单向链表 实现链表节点的增加、删除、输入 怎么写啊 #includeusing namespace std;struct node{int data;node*next;node(){ next=NULL;}};class link{public:link();link();void creat();调用creat1函数,完成链表的建立5261工作void creat1(int num);构建链表的函数bool search(int i);查找第i个节点的数据,4102并输出bool insert(int i,int number);在第i个节点插入数据numberbool shanchu(int i,int&x);删除第i个节点void output(node*f);输出链表中所有节点的值node*first;node*rear;int size;};link:link(){1653size=0;first=new node;rear=first;first->;next=NULL;}link:~link(){while(first){node*p=first;delete first;first=p->;next;}}void link:creat(){int i,j,m;cout请输入要输入数据的个数并输入一组数\";cin>;>;i;for(j=0;j;j+){cin>;>;m;creat1(m);}}void link:creat1(int num){node*q=rear;rear=new node;rear->;next=NULL;rear->;data=num;q->;next=rear;size+;}bool link:search(int i){if(i>;size)return 0;else {int j;node*r=first;for(j=0;j;j+)first=first->;next;cout<;<;first->;data;first=r;return 1;}}bool link:insert(int i,int number){if(i>;size)return 0。

删除一单向链表中P指针所指向结点的后继结点,正确的操作是_______。 答案是A下面的是具2113体的过程:假设自5261己定义一下P(代表的是直接前4102趋结点),Q(代表的是直接后继1653结点),S(就是你想要删除那个结点)。那么你可以这样考虑:首先你看第一个答案P->;next指向的是就是你想要删除的那个节点S。然后P->;next->;next指的就是它的后继结点也就是指的是Q。所以成功的删除了结点S。所以直接就符合了要求,所以答案应该选择A。答案B只是指向了它的删除结点,所以不符合答案。C只是指了S指向了它的后继结点,所以也不符合要求。D(P-.>;next->;next)表明的是它直接指向了它的后继结点的后继结点(在这说明它可能是空指针也可能是非空指针),所以也不符合要求。所以答案只能选A。

#单向链表删除多余重复节点

随机阅读

qrcode
访问手机版