#include 
#include 
#include 
typedef struct Link{ int data; struct Link *llink; struct Link *rlink;}Node,*pNode;//创建结点pNode CreateNode(int data){ pNode p; p = (pNode)malloc(sizeof(Node)); if ( !p ) { printf("内存分配失败......"); exit(-1); } p->data  = data; p->llink = p->rlink = p; //创建新结点时,让其前驱和后继指针都指向自身 return p;} //创建链表pNode CreateList(int data){ pNode p; p = (pNode)malloc(sizeof(Node)); if ( !p ) { exit(-1); } p->data = data; p->llink = p->rlink = p; return p;}//插入新结点,总是在表尾插入; 返回表头结点pNode InsertNode(pNode node,int data){ pNode p; p = CreateNode(data);  // 从左到右恢复链接 node->llink->rlink = p; p->rlink = node; // 从右到左恢复链接 p->llink = node->llink; node->llink = p; return node;}//查找结点,成功则返回满足条件的结点指针,否则返回NULLpNode FindNode(pNode node,int data){ pNode p = node->rlink; while ( p != node && p->data != data ) { p = p->rlink; } if ( p == node ) { return NULL; } return p;}pLink DeleteNode(pLink node,int data){ pLink p = FindNode(node,data); if ( p ) { p->llink->rlink = p->rlink; p->rlink->llink = p->llink; free(p); return node; } else { return NULL; }}int GetLength(pLink node){ int count=0; pLink p = node->rlink; while ( p != node ) { p = p->rlink; count++; } return count;}void DisplayList(pLink node){ pLink p; if ( NULL == node ) { return NULL; } p = node->rlink; while ( p != node ) { printf("%4d",p->data); p = p->rlink; } printf("\n");}void DisplayList1(pLink node){ pLink p; if ( NULL == node ) { return NULL; } p = node->llink; while ( p != node ) { printf("%4d",p->data); p = p->llink; } printf("\n");}void DestoryList(pLink node){ pLink p,ptr; if ( NULL == node ) { return NULL; } p = node->rlink; while ( p != node ) { ptr = p->rlink; free(p); p = ptr; } free(node);}int main(void){ int choose,i; int data,n; int r,k=1,r1; pLink p; pLink list = CreateList(0); while ( k == 1 ) { printf("主菜单:\n"); printf("1. 插入元素\n"); printf("2. 删除元素\n"); printf("3. 查找元素\n"); printf("4. 链表长度\n"); printf("5. 正向打印\n"); printf("6. 逆向打印\n"); printf("7. 删除链表\n"); printf("0. 退出\n"); r = scanf("%d",&choose); flushall(); if ( r == 1 ) { switch(choose) { case 1: do{ printf("输入要插入的数字个数:"); r1 = scanf("%d",&n); flushall(); if ( r1 == 1 ) { for ( i=0 ; i