雙向迴圈鍊錶的建立 查詢 新增 刪除

2021-07-25 05:45:15 字數 1437 閱讀 6644

雙向迴圈鍊錶的建立、查詢、新增、刪除

#include

#include

typedef struct lnodelnode,*dlinklist;

//尾插法建立雙向鍊錶

dlinklist create(dlinklist l,int n)

return l; }

void menu()

//獲取雙向迴圈鍊錶中某一元素的值

dlinklist getelem(dlinklist l,int n)

if(n>count)

else

return p; }

}//刪除雙向迴圈鍊錶某一位置的元素

void deleteelem(dlinklist l,int n)

if(n>count)

else

dlinklist t;

t=p->next;

p->next=t->next;

t->next->pre=p;

free(t); }

} //在某乙個位置插入元素

dlinklist insert(dlinklist l,int m,int e)

if(m>count)

else

dlinklist q;

q=(dlinklist) malloc (sizeof(lnode));

q->data=e;

q->next=p->next;

p->next->pre=q;

p->next=q;

q->pre=p;

return l; }

}void main()

break;

case 2:

printf("請輸入要查詢與元素的位置:");

scanf("%d",&n);

dlinklist t;

t=getelem(l,n);

printf("該位置的資料為:%d",t->data);

break;

case 3:

printf("請輸入要刪除元素的位置:");

scanf("%d",&i);

deleteelem(l,i);

break;

case 4:

printf("請輸入要插入元素的位置:");

scanf("%d",&i);

printf("請輸入要插入元素:");

scanf("%d",&e);

insert(l,i,e);

break;

case 0:

printf("已結束程式!!!\n");

break;

default:

printf("輸入錯誤!!!\n");

break; }

}while(m!=0); }

雙向迴圈鍊錶(建立 插入 刪除 遍歷)

author chen ming dong include include typedef struct list str int n str creat str head head prior p p next head return head 遍歷 void gothrough str head...

雙向迴圈鍊錶的刪除

刪除某個結點,其實就是插入某個結點的逆操作。還是對於雙向迴圈鍊錶,要在連續的三個結點s,p,q中刪除p結點,只需把s的右鏈域指標指向q,q的左鏈域指標指向s,並收回p結點就完成了。下面就是乙個應用雙向迴圈鍊錶刪除演算法的例子 include include include define n 10 t...

雙向迴圈鍊錶的建立 查詢 插入 刪除和遍歷等操作

雙向迴圈鍊錶的建立 查詢 插入 刪除和遍歷等操作 ifndef dlinklist h define dlinklist h include include typedef int datatype typedef struct double link node dlk,dplk extern vo...