線性表之雙向鍊錶

2021-06-11 01:30:05 字數 1347 閱讀 5800

#include #include #define error 0

#define ok 1

typedef int status;

typedef int elemtype;

typedef struct dulnodedulnode,*dulinklist; //雙向鍊錶的結構體 兩個指標,分別指向前乙個和後乙個節點

dulinklist ini_dulinklist() //初始化雙向鍊錶

return l;

}dulinklist create_dulinklist(dulinklist l) //建立雙向鍊錶

return l;

}status insert_dulinklist(dulinklist l,int i,elemtype e ) //向雙向鍊錶中插入乙個節點

s->data=e;

s->prior=p->prior;

p->prior->next=s;

s->next=p;

p->prior=s;

return ok;

}status delete_dulinklist (dulinklist l,int i,elemtype *e) //雙向鍊錶中刪除乙個節點

*e=p->data;

p->prior->next=p->next;

p->next->prior=p->prior;

return ok;

}status getelem(dulinklist l,int i,elemtype *e) //獲取雙向鍊錶中第i個元素

if(!p||j>i) return error;

*e=p->data;

return *e; }

void print(dulinklist l)

}void main ()

雙向鍊錶的插入操作是需要進行四個指標的修改

雙向鍊錶的刪除操作是需要進行兩個指標的修改

雙向鍊錶的結構體

雙向鍊錶刪除節點   修改兩個指標

雙向鍊錶插入節點 修改四個指標   有順序的

線性表之雙向鍊錶

雙向鍊錶 include include 狀態量 define ok 1 define error 0 adt 雙鏈表結構說明 typedef int elemtype typedef struct dnodedlistnode typedef dlistnode dlinklist 節點 模組定義...

線性表 雙向鍊錶

雙向鍊錶是一種特殊的鍊錶。單鏈表和雙向鍊錶的區別 單鏈表 只能向乙個方向遍歷 雙向鍊錶 向兩邊都可以遍歷。雙向鍊錶的實現 為了找到節點和前驅,我們給節點增加乙個指向其前驅的指標,如下圖所示 既然單鏈表可以迴圈,那麼雙向鍊錶也就可以迴圈,如下圖所示即為雙向迴圈鍊錶 建立雙向鍊錶和建立單鏈表大同小異,雙...

線性表(一) 鍊錶之雙向迴圈鍊錶

四 雙向迴圈鍊錶的實現 template class cycdullist cycdullist 獲取鍊錶大小 size t size 判斷鍊錶是否為空 bool empty 獲取頭節點 listnode get head 獲取任意位置節點 listnode get node const int i...