資料結構與演算法 雙向鍊錶

2021-10-09 14:43:04 字數 2610 閱讀 1987

typedef

struct lineline;

line*

initline

(line * head)

return head;

}

line *

insertline

(line * head,

int data,

int add)

else

//判斷條件為真,說明插入位置為鍊錶尾

if(body->next==

null

)else

}return head;

}

//刪除結點的函式,data為要刪除結點的資料域的值

line *

delline

(line * head,

int data)

temp=temp->next;

}printf

("鍊錶中無該資料元素");

return head;

}

void

display

(line * head)

else

temp=temp->next;

}}

//head為原雙鏈表,elem表示被查詢元素

intselectelem

(line * head,

int elem)

i++; t=t->next;

}//程式執行至此處,表示查詢失敗

return-1

;}

//更新函式,其中,add 表示更改結點在雙鏈表中的位置,newelem 為新資料的值

line *

amendelem

(line * p,

int add,

int newelem)

temp->data=newelem;

return p;

}

#include

#include

typedef

struct lineline;

//雙鏈表的建立

line*

initline

(line * head)

;//雙鏈表插入元素,add表示插入位置

line *

insertline

(line * head,

int data,

int add)

;//雙鏈表刪除指定元素

line *

delline

(line * head,

int data)

;//雙鏈表中查詢指定元素

intselectelem

(line * head,

int elem)

;//雙鏈表中更改指定位置節點中儲存的資料,add表示更改位置

line *

amendelem

(line * p,

int add,

int newelem)

;//輸出雙鏈表的實現函式

void

display

(line * head)

;int

main()

line*

initline

(line * head)

return head;

}line *

insertline

(line * head,

int data,

int add)

else

//判斷條件為真,說明插入位置為鍊錶尾

if(body->next==

null

)else

}return head;

}line *

delline

(line * head,

int data)

temp=temp->next;

}printf

("鍊錶中無該資料元素");

return head;

}//head為原雙鏈表,elem表示被查詢元素

intselectelem

(line * head,

int elem)

i++; t=t->next;

}//程式執行至此處,表示查詢失敗

return-1

;}//更新函式,其中,add 表示更改結點在雙鏈表中的位置,newelem 為新資料的值

line *

amendelem

(line * p,

int add,

int newelem)

temp->data=newelem;

return p;

}//輸出鍊錶的功能函式

void

display

(line * head)

else

temp=temp->next;

}}

資料結構與演算法 雙向鍊錶

雖然從表內第乙個節點到最後乙個節點的遍歷操作是非常簡單的,但是反向遍歷鍊錶卻不是一件容易的事情。如果為node類新增乙個欄位來儲存指向前乙個節點的連線,那麼久會使得這個反向操作過程變得容易許多。當向鍊錶插入節點的時候,為了吧資料複製給新的字段會需要執行更多的操作,但是當腰吧節點從表移除的時候就能看到...

資料結構與演算法 雙向鍊錶

ps 前面已經說過線性表的兩種表現形式,一種是順序,另一種是鏈式,鏈式的一種普通表現形式就是加入乙個指標,前乙個的指標指向後乙個結點的位址,那麼還有一種形式就是雙向鍊錶,裡面又加上了乙個指標變數,讓前指標變數指向直接前驅,後指標變數指向直接後繼。建立結構體 typedef struct double...

資料結構與演算法 資料結構之雙向鍊錶

雙向鍊錶自我感覺修改的時候有點繞,不過還好,如果實在不理解一定記得畫圖,其實很容易,但是想出來容易漏掉一些步驟,總之就是多動手 package org.yc public class test class doublelinkedlistheadelse temp.next studentnode ...