如何创建空单链表,并在单链表上通过插入A~E建立非空单链表并输出,且取第3个数据元素并输出,并在已有单链表里查找B,并输出查找结果,最后删除单链表里的第4个数据元素并输出删除后的单链表。 在devc++环境中运行。
2条回答 默认 最新
- 程序员萌芽 2022-03-24 10:09关注
#include<iostream> using namespace std; struct list//创建一个简单的链表节点 { char ch;//只是存储一个数 list *next;//指向下一个节点的指针,链表的关键 }; int main() { list *head=NULL,*chain=NULL,*data=NULL;//头指针用来记录这个链表的位置,另外两个指针用来推进节点的创建和连接 //链表数据的输入 while(1) { data=new list;//首先分配一块内存 cin>>data->ch;//读入数据并存储 if(head==NULL)//如果是第一个,那么要让头指针指向它 head=data; else//如果不是第一个,那么就让上一个节点的指针成员指向它 chain->next=data; chain=data;//让这个节点成为上一个节点 data->next=NULL;//表示尾节点 if(getchar()=='\n')//如果按下回车就不读了,不然就一直装 break; } //链表数据的输出 data=head;//找到链表的位置 int i=1; while(data) { if(i++==3) cout<<data->ch<<' '; data=data->next;//推进 } data=head;//找到链表的位置 while(data) { if(data->ch=='B') cout<<data->ch<<' '; data=data->next;//推进 } data=head;//找到链表的位置 i=1; while(data) { if(i++==4) chain=data->next; data=data->next;//推进 } data=head;//找到链表的位置 i=1; while(data) { if(i++==3) data->next=chain; data=data->next;//推进 } data=head;//找到链表的位置 while(data) { cout<<data->ch<<' '; data=data->next;//推进 } //链表内存释放 data=head;//找到链表位置 while(data)//如果不是到尾了,那就继续释放 { chain=data->next;//先推进,不然先释放的话,后面的就找不到了 delete data; data=chain; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1