qq_35263159 2016-09-29 11:59 采纳率: 100%
浏览 1264
已采纳

c++ 数据结构 单链表问题

给定一个带表头结点的单链表,设first为头指针,试写出算法:按递增次序输出单链表中各结点的数据元素,并释放结点所占的存储空间。(要求:不允许使用数组作辅助空间)。

  • 写回答

2条回答 默认 最新

  • 凝视深空 2016-09-29 15:11
    关注

    #include
    using namespace std;

    typedef struct node
    {
    int data;
    struct node *next;
    }list;

    void swap(int *a,int *b)
    {
    int t=*a;
    *a=*b;
    *b=t;
    }

    void cre(list *head)
    {
    cout<<"创建链表(-1结束)\n";
    list *p,*q;
    p=head;
    while(1)
    {
    q=new list;
    cin>>q->data;
    if(q->data==-1)
    {
    q=NULL;
    p->next=q;
    break;
    }
    else
    p->next=q;
    p=q;
    }
    cout<<endl;
    }

    void Sort(list *head)
    {
    cout<<"排序开始!\n\n";
    list *p,*q,*r;
    r=head->next;
    for(p=r;p->next!=NULL;p=p->next)
    for(q=p->next;q!=NULL;q=q->next)
    if(p->data>q->data)
    swap(&q->data,&p->data);
    cout<<endl;
    }

    void disp(list *head)
    {
    cout<<"开始显示链表!\n\n";
    list *p;
    p=head->next;
    while(p)
    {
    cout<data<<" ";
    p=p->next;
    }
    cout<<endl;
    }

    void del(list *head)
    {
    cout<<"开始删除结点空间!\n";
    list *p,*q;
    p=head;
    while(p)
    {
    q=p->next;
    delete p;
    p=q;
    }
    cout<<"删除成功!\n";
    }

    int main(void)
    {
    list *head;
    head=new list;
    cre(head);
    disp(head);
    Sort(head);
    disp(head);
    del(head);
    return 0;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况