1. 程式人生 > 其它 >線性表之雙鏈表的基本操作(c語言)

線性表之雙鏈表的基本操作(c語言)

技術標籤:資料結構指標連結串列資料結構c語言

目錄

概念

  • 雙鏈表的每個資料結點中都有兩個指標,分別指向後繼結點和前驅結點。

儲存結構

typedef struct LNode{
	int data;//資料域 
	struct LNode *next,*prior;//指標域
}LNode,*LinkList; 
  • LinkList和LNode是不同名字的同一個指標型別。
  • *LinkList型別的指標變數head表示它是單鏈表的頭指標。
  • LNode型別的指標變數p表示它是指向某一結點的指標。

初始化

bool InitLinklist(
LinkList &L) { L=(LNode*)malloc(sizeof(LNode));//分配頭結點 if(L==NULL)return false; L->prior=NULL; L->next=NULL; return true; }

插入

bool InsertNode(LNode *p,LNode *s)
 {
 	if(s==NULL||p==NULL)return false;
 	s->next=p->next;
 	if(p->next!=NULL)
 	p->next->prior=s;
 	s->
prior=p; p->next=s; return true; }

刪除

刪除後繼結點

bool DeleteNode(LNode *p)
 {
 	if(p==NULL)return false;
 	LNode *q=p->next;
 	if(q=NULL)return false;
 	p->next=q->next;
 	if(q->next!=NULL)
 	q->next->prior=p;
 	free(q);
 	return true;
  }

銷燬連結串列

bool DestroyNode(LinkList &
L) { while(L->next!=NULL)//呼叫刪除函式,迴圈刪除頭結點的後繼結點 DeleteNode(L); free(L); L=NULL; return true; }

上一節:線性表之單鏈表的基本操作(c語言)
下一節:線性表之迴圈連結串列的基本操作(c語言)