//c语言之双向链表
#include<stdio.h>
#include<malloc.h>
typedef struct Student{
int data;
struct Student *Next;
struct Student *Prior;//
}*PNode,Node;
PNode creatlist(){
PNode head,rear,node;
printf("请输入链表的值");
head=(PNode)malloc(sizeof(Node));
rear=head;
head->Prior=NULL;
int n;
scanf("%d",&n);
while(n!=0){
node=(PNode)malloc(sizeof(Node));
node->data=n;
rear->Next=node;
node->Prior=rear;
rear=node;
scanf("%d",&n);
}
rear->Next=NULL;
return head;
}
void printflist(PNode x){
PNode p=x->Next;
printf("从头到尾的打印");
printf("\n");
while(x!=NULL){
printf("后面为%d 前面为%d \n",(p->Next)->data,(p->Prior)->data);
p=p->Next;
}
printf("xxxxxxxxxxxxxx");
printf("从尾到头打印");
}
int main(){
PNode x=creatlist();
printf("\n");
printflist(x);
return 0;
}
我想说的是我的这个代码貌似有点小问题如果有人运行代码后能过发现并解决这个问题请评论在下方