c语言的双链表问题,请问如何才能正确输出双链表元素。

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:46:19
麻烦你们能在关键的部分写上一些注释,小弟我是初学者,不怎么懂

我做过的作业给你,可以直接运行
#include<stdio.h>
#include<malloc.h>
#define NULL 0
#define LEN sizeof(struct DuLNode)
typedef struct DuLNode{ int data;struct DuLNode* prior;struct DuLNode* next;}DuLNode,*DuLinkList;

void CreatList_L(DuLinkList &L,int n,DuLinkList &Tail)
{ DuLinkList p,q;int i;
L=(DuLinkList)malloc(LEN);
L->next=NULL;//建立一个空的头结点,但因为它有指针域,所以它!=NULL
p=L;
for(i=1;i<=n;++i)
{q=(DuLinkList)malloc(LEN);
printf("输入一个整数:");
scanf("%d",&q->data);
q->next=L;//创建一个新结点
p->next=q;
q->prior=p;
p=q;
printf("\n");
}
Tail=q;
}
//在第i个位置前插入一结点

void ListInsert_L(DuLinkList &L,int i,int e)

{
DuLinkList p,s;int j=0;
p=L->next;
while(p!=L&&j<i-1){p=p->next;++j;}//找到第i-1个结点
if(p==L||j>i-1) printf ("插入位置错误!");
s=(DuLinkList)malloc(L