给定一个带表头结点的单链表,设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数据集