在前文實現單向鍊錶的基本操作下,本文實現
雙向鍊錶的基本操作.
雙向鍊錶與單鏈表差異,是雙向鍊錶結點中有
前向指標和後向指標.
所以在插入和刪除
新結點元素時候不見要考慮後向指標還要考慮
前向指標.
以下是雙向鍊錶的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 節點 模組定義...