續 線性表之雙向鍊錶 C語言實現

2021-06-22 23:00:58 字數 1192 閱讀 7480

在前文實現單向鍊錶的基本操作下,本文實現

雙向鍊錶的基本操作.

雙向鍊錶與單鏈表差異,是雙向鍊錶結點中有

前向指標和後向指標.

所以在插入和刪除

新結點元素時候不見要考慮後向指標還要考慮

前向指標.

以下是雙向鍊錶的c**:

#includetypedef struct node

node;

//鍊錶的初始化

node* initlist(int number)

return head;

}//顯示鍊錶

void showlist(node *head)

printf("%d",head->data);

printf("\n");

}//輸出鍊錶某個值的位置

int listlocation(node *head,int data,int number)

location++;

tempnode=tempnode->next;

}if(location>=number)

printf("not found!");

}//輸出鍊錶某個位置的值

int listdata(node *head,int location,int number)

}//頭入法插入元素

void headinsertdata(node *head,int data)

//尾入插入除元素

void tailinsertdata(node *head,int data)

//刪除頭結點

void headdeletedata(node *head)

//刪除尾結點

void taildeletedata(node *head)

int main()

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

}return 0;

}

結果圖:

C 語言實現線性表之鍊錶例項

插入 刪除結點的 有點多,但這樣提高了 的可讀性,且不增加時間複雜度,不會影響程式效能 include using namespace std template class clist template class node template class clist 為頭結點分配空間 templat...

線性表之雙向鍊錶

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

線性表之雙向鍊錶

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