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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog