当前位置: 代码迷 >> C语言 >> 请问诸位 我的这个双向链表错在哪了
  详细解决方案

请问诸位 我的这个双向链表错在哪了

热度:112   发布时间:2007-08-19 15:37:00.0
请问诸位 我的这个双向链表错在哪了
请问诸位 我的这个双向链表错在哪了?谢谢!
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct stu
{
int num;
char name[5];
struct stu *front;
struct stu *next;
}st;
st *create()
{
char m[5];
int n;
int x,i=0;
st *p,*q,*h;
h=(st *)malloc(sizeof(st));
p=h;
printf("请输入节点数: ");
scanf("%d",&x);
while(i<x)
{
printf("please input num: ");
scanf("%d",&n);
printf("please input name: ");
scanf("%s",m);
q=(st *) malloc(sizeof(st));
p->next=q;
q->num=n;
strcpy(q->name,m);
p=q;
i++;
}
p->next=NULL;
return h;
}
void disp(st *h)
{
st *p,*q;
p=h->next;
q=h;
while(p!=NULL)
{
p->front=q;
q=p;
p=p->next;
}
q=p->front;
while(q!=h)
{

printf("[%d]->[%s]->",q->num,q->name);
q=q->front;
}
printf("head\n");
}

void main()
{
st *list;
list=create();
disp(list);
}

搜索更多相关的解决方案: 链表  

----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
那位帮我看看呀 谢谢

----------------解决方案--------------------------------------------------------

我刚才调试了一下程序,楼主的disp()函数有错误,主要是指针出现了问题,楼主在创建双向链表的函数create()中没有对节点的front域进行处理,我帮楼主改了一下程序(程序详见附件)


----------------解决方案--------------------------------------------------------
谢谢楼上的!本来是想先建个单链表 然后在加个前指针变成双链后逆序显示下!!是不是我这样的想法不对呢!!

----------------解决方案--------------------------------------------------------
  相关解决方案