線性表之雙向鍊錶

2021-08-20 01:38:20 字數 1358 閱讀 7869

//*******************************雙向鍊錶************************

#include #include //**********==狀態量*****===

#define ok 1

#define error 0

//***************===adt 雙鏈表結構說明***************====

typedef int elemtype;

typedef struct dnodedlistnode;

typedef dlistnode *dlinklist; //節點

//*************************模組定義**********===

/* 內建函式 定義 */

static dlinklist newnode()

return pnew;

} /* 初始化 */

void initlist(dlinklist *l)

}/* 銷毀表 */

void destroylist(dlinklist l)

free(p);

} /* 判斷表空 */

int listempty(dlinklist l)

/* 求表長 */

int listlength(dlinklist l)

/* 輸出表 */

void displist(dlinklist l)

printf("\n");

} /* 獲取元素 */

int getelem(dlinklist l, int i, elemtype *e)

if(p == null)

return error;

else

} /* 求元素位置 */

int locateelem(dlinklist l, elemtype e)

if(p == null)

return error;

else

return i;

} /* 插入元素 */

int insertlist(dlinklist l, int i, elemtype e)

if(p == null)

return error;

else

}/* 刪除指定位置元素,並返回其值 */

int deletelist(dlinklist l, int i, elemtype *e)

if(p == null)

return error;

else

}

歡迎參考,

線性表之雙向鍊錶

include include define error 0 define ok 1 typedef int status typedef int elemtype typedef struct dulnodedulnode,dulinklist 雙向鍊錶的結構體 兩個指標,分別指向前乙個和後乙個節...

線性表 雙向鍊錶

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

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

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