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条)

报告相同问题?

悬赏问题

  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集