#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef char DataType;
typedef struct Node
{
DataType data;
struct Node *prior;
struct Node *next;
}DListNode,*DLinkList;
DListNode* GetElem(DLinkList head, int i);
void PrintDList(DLinkList head);
int CreateDList(DLinkList head, int n);
int InsertDList(DLinkList henad, int i, char e);
int InitDList(DLinkList *head)
{
*head = (DLinkList)malloc(sizeof(DListNode));
if (!head)
return -1;
(*head)->next = *head; //使头结点的prior和next指针指向自己
(*head)->prior = *head;
return 1;
}
int CreateDList(DLinkList head, int n)
{
DListNode *s, *q;
int i;
DataType e;
q = head;
for (i = 1; i <= n; i++)
{
printf("输入%d个元素", i);
e = getchar();
s = (DListNode*)malloc(sizeof(DListNode));
s->data = e;//将新生成的结点插入双向循环链表
s->next = q->next;
q->next = s;
s->prior = q;
head->prior = s;//这里注意头
双向链表的应用
最新推荐文章于 2022-10-24 14:59:58 发布