请问诸位 我的这个双向链表错在哪了
请问诸位 我的这个双向链表错在哪了?谢谢!#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域进行处理,我帮楼主改了一下程序(程序详见附件)
----------------解决方案--------------------------------------------------------
谢谢楼上的!本来是想先建个单链表 然后在加个前指针变成双链后逆序显示下!!是不是我这样的想法不对呢!!
----------------解决方案--------------------------------------------------------