双向循环链表的基本操作
2007-09-09 16:03
393 查看
#include <malloc.h>
#include <stdio.h>
//以下双向循环链表均带有头节点;头节点不存放数据,只起到带头作用。
typedef struct DLLNode{
int data;
struct DLLNode *prior;
struct DLLNode *next;
}DLLinkNode;
//双向循环链表的建立(正插入法)
DLLinkNode * CreatDLList(DLLinkNode *DLL,int n){
DLL=(DLLinkNode*)malloc(sizeof(DLLinkNode));
DLL->prior=DLL;
DLL->next=DLL;
DLLinkNode *p0=DLL,*p;
int i;
for(i=n;i>0;--i){
p=(DLLinkNode*)malloc(sizeof(DLLinkNode));
printf("input the data:/n");
scanf("%d",&p->data);
p0->next =p;
p->prior=p0;
p0=p;
}
p0->next=DLL;
DLL->prior=p0;
return DLL;
}
//双向循环链表的打印
void DisplayDLList(DLLinkNode *L){
struct DLLNode *p=L->next;
while(p!= L){
printf("%d/n",p->data);
p=p->next ;
}
}
//双向循环链表的测长
int GetLengthDLList(DLLinkNode *L){
struct DLLNode *p=L->next;
int length=0;
while(p!= L){
length++;
p=p->next ;
}
return length;
}
#include <stdio.h>
//以下双向循环链表均带有头节点;头节点不存放数据,只起到带头作用。
typedef struct DLLNode{
int data;
struct DLLNode *prior;
struct DLLNode *next;
}DLLinkNode;
//双向循环链表的建立(正插入法)
DLLinkNode * CreatDLList(DLLinkNode *DLL,int n){
DLL=(DLLinkNode*)malloc(sizeof(DLLinkNode));
DLL->prior=DLL;
DLL->next=DLL;
DLLinkNode *p0=DLL,*p;
int i;
for(i=n;i>0;--i){
p=(DLLinkNode*)malloc(sizeof(DLLinkNode));
printf("input the data:/n");
scanf("%d",&p->data);
p0->next =p;
p->prior=p0;
p0=p;
}
p0->next=DLL;
DLL->prior=p0;
return DLL;
}
//双向循环链表的打印
void DisplayDLList(DLLinkNode *L){
struct DLLNode *p=L->next;
while(p!= L){
printf("%d/n",p->data);
p=p->next ;
}
}
//双向循环链表的测长
int GetLengthDLList(DLLinkNode *L){
struct DLLNode *p=L->next;
int length=0;
while(p!= L){
length++;
p=p->next ;
}
return length;
}
相关文章推荐
- 双向循环链表基本操作的实现(C语言)
- 双向循环链表基本操作(C语言)
- 双向循环链表的基本操作
- 双向循环链表的头插尾插中间插基本操作
- 双向循环链表的基本操作
- 【数据结构】-线性表-双向循环链表-1328:链表的基本操作【好题】
- 双向循环链表的基本操作
- 循环双向链表的基本操作
- 双向循环链表基本操作
- 数据结构学习之双向循环链表的基本操作(非递归实现)
- 数据结构_线性表_链式存储_双向循环链表的基本操作
- 双向循环链表基本操作
- 关于双向循环链表基本操作
- 实战数据结构(5)_双向循环链表的基本操作
- 实战数据结构(5)_双向循环链表的基本操作
- C语言单链表,双向链表,循环单链表,循环双链表的基本操作
- 双向循环链表的基本操作
- 双向循环链表基本操作(C语言版)
- 不带头节点的双向循环链表的基本操作
- C++类模板 实现双向循环链表的基本算法 《数据结构》(C++版 北京科海)中摘抄