一个关于创建双向链表的问题。
感觉下面这张图里画横线的两个地方输出应该相同啊,为啥主函数里printf出来全是0.
#include <stdio.h>
#include <stdlib.h>
typedef struct DuLNode
{
int data;
struct DuLNode *prior;
struct DuLNode *next;
}DuLNode,*DuLinkList;
void Create(DuLNode *p,DuLNode *move,int e)
{
DuLNode s;
DuLinkList ps=&s;
ps=(DuLinkList)malloc(sizeof(DuLNode));
ps->data=e;
ps->prior=move;
move->next=ps;
ps->next=p;
p->prior=ps;
move=move->next;
printf("%d\n",move->data);
}
int main()
{
int a[100000],b,len=0;
while(1)
{
scanf("%d",&b);
if(b==-1) break;
else a[len]=b,len++;
}
DuLNode s;
DuLinkList p=&s,move=p;
p=(DuLinkList)malloc(sizeof(DuLNode));
p->data=-1,p->next=p,p->prior=p;
for(int i=0;i<len;i++)
Create(p,move,a[i]),printf("%d\n",move->data);
return 0;
}