小书丶 2022-03-24 08:41 采纳率: 87.5%
浏览 106
已结题

C语言单链表的应用,该如何在单链表上通过插入A~E建立非空单链表并输出?

如何创建空单链表,并在单链表上通过插入A~E建立非空单链表并输出,且取第3个数据元素并输出,并在已有单链表里查找B,并输出查找结果,最后删除单链表里的第4个数据元素并输出删除后的单链表。 在devc++环境中运行。

  • 写回答

2条回答 默认 最新

  • MaolinYe(叶茂林) 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条)

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 已采纳回答 3月25日
  • 创建了问题 3月24日

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥20 sim800c模块 at指令及平台
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计