双链表中的结点包括3个域,一个是存放数据信息的info域,另两个是指阵域,这里用llink和rlink表示,llink指向它的前驱结点,rlink指向它的后继结点。
双链表要掌握以下基本操作:
1、创建一个空的双链表。
2、输出双链表中各结点的值。
3、在双链表中查找第i个结点。
4、在双链表中第i个结点后插入一个值为x的新结点。
5、双链表中删除一个结点。
运行环境:Dev-C++5.11
以下是头文件
#ifndef D_HEAD_LINK_H_INCLUDED
#define D_HEAD_LINK_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
typedef struct dlink_node
{
int info;
struct dlink_node *llink,*rlink;
}DN;
/*建立一个空的双链表*/
DN *init()
{
return NULL;
}
/*对双链表进行初始化*/
DN *creat(DN *head)
{
DN *p,*q,*h=head;
int x;
printf("\n以输入-1作为结束\n");
scanf("%d",&x);
while(x!=-1)
{
p=(DN*)malloc(sizeof(DN));
p->info=x;
if(!h)
{
p->llink=NULL;
q=p;
h