#include<stdio.h>
#include<malloc.h>
typedef int ElemType;
typedef struct node{
ElemType data;
struct node *next;
struct node *prior;
}dlink;
//建立双链表
dlink * credlink(int n){//返回的指针是指向结构体类型的
dlink *head,*p,*s;int i;
p=head=(dlink * )malloc(sizeof(dlink));
for(i=1;i<=n;i++){
s=(dlink * )malloc(sizeof(dlink));
printf("请输入数字!");
scanf("%d",&s->data);
s->prior=p;
p->next=s;
p=s;
}
p->next=head->prior=NULL;
return head;
}
//遍历双链表,和单链表相同
dlink *showlink(dlink *head){
dlink *p;
p=head->next;//p=head
while(p!=NULL){//p->next!=NULL,如果写成这样,输出结果是错误的
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
//求表长操作
int getlen(dlink *head){
dlink *p;
int len=0;
p=head->next;
while(p!=NULL){
len+=1;
p=p->next;
}
return len;
}
//取元素操作(取出双链表head中第i个
双链表的表示和实现(C语言)
最新推荐文章于 2022-09-18 08:02:57 发布
本文介绍了如何在C语言中表示和实现双链表。通过一个返回指针的函数,详细阐述了如何操作链表节点,强调了函数定义中的指针类型和优先级规则。
摘要由CSDN通过智能技术生成