fontatag 2017-05-19 08:47 采纳率: 0%
浏览 785

小白,请求大家帮我改改程序,陷入了死循环退不出。。。。。。。谢谢大家

#include
using namespace std;
#include
#include
typedef struct node
{
int data;
struct node next;
}NODE;
//建立链表,返回链表的头指针
NODE *createlink(int len)
{
NODE *h,*p,*s;
p=h=(NODE
)malloc(sizeof(NODE));
h->next=NULL;
for(int i=1;i<=len;i++)
{
s=(NODE *)malloc(sizeof(NODE));
scanf("%d",&s->data);
s->next=NULL;
p->next=s;
p=s;
}
return h;
}
//求表的长度
int getlength(NODE *h)
{
NODE *p;
p=h->next;
int num=0;
while(p!=NULL)
{
num++;
p=p->next;
}
return num;
}
//取元素操作
int findelement(NODE *h,int i,int len)
{
NODE *p;
p=h->next;
int count=1;
if(i>len&&i return -1;
while(p!=NULL&&count {
p=p->next;
count++;
}
return p->data;
}
//输出链表操作
void display(NODE *h)
{
NODE *p;
p=p->next;
while(p!=NULL)
{
printf("%d",p->data);
p=p->next;
}
}
//插入结点操作
void insertelement(NODE *h,int i,int t,int *len)
{
NODE *p=h,*s;
int j=0;
if(i>*len+1||i<1)
{
printf("这个结点位置错误\n");

}
while(p->next!=NULL&&j<i-1)
{
    p=p->next;
    j++;
}
s=(NODE *)malloc(sizeof(NODE));
s->data=t;
s->next=p->next;
p->next=s;
*len=*len+1;

}
//删除结点操作
void deletelement(NODE *h,int n,int *len,int *e)
{
NODE *p=h->next,*q;
int j=1;
if(n>*len||n<1)
{
printf("这个结点位置错误\n");

}
while(p!=NULL&&j<n-1)
{
    p=p->next;
    j++;
}
q=p->next;
p->next=q->next;
*e=q->data;
*len=*len-1;
free(q);

}
//销毁链表
void destroylink(NODE *h)
{
NODE *p;
while(h->data!=NULL)
{
p=h;
h=h->next;
free(p);
}
}
//单链表的逆置
void invertlink(NODE *h)
{
NODE *p=h->next,*q,*r;
h->next=NULL;
while(p!=NULL)
{
q=p->next;
p->next=h->next;
h->next=p;
p=q;
}
}
int main()
{
NODE *h;
NODE *p;
int len,i,n,t=4,e=0;
cout<<"请输入你要创建的长度:"< cin>>len;
h=createlink(len);
len=getlength(h);
cout<<"你要查找的位置:"< cin>>i;
findelement(h,i,len);
insertelement(h,i,t,&len);
display(h);
cout<<"你要删除的位置:"< cin>>n;
deletelement(h,n,&len,&e);
display(h);
invertlink(h);
display(h);
//destroylink(h);
//display(h);
return 0;
}

  • 写回答

2条回答

  • shen_wei 2017-05-19 09:07
    关注

    http://blog.csdn.net/hopeyouknow/article/details/6677974

    参考这个对比自己的代码

    贴代码 使用 **</> **来贴。。。不然代码不全。。。

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥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,这个整了好几天一直不行,求帮忙看一下怎么解决