//*******************************雙向鍊錶************************
#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...