#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...