二級鍊錶的實現,以及把二級鍊錶展開成一級鍊錶,
關鍵是資料結構的設計,
這裡我用了二級鍊錶的節點類,它包括了兩個指標,乙個指向乙個二級鍊錶節點,乙個指向單鏈表的頭結點。
生成乙個二級鍊錶預設建構函式是只含有乙個頭結點為二級鍊錶節點(空),
插入的時候是插入乙個單鏈表指標不為空,但是二級鍊錶節點為空的二級鍊錶節點。
view code
1//二級單鏈表
2 #include
3using
namespace std;
45 template struct linknode
6 15 linknode(const type& item,linknode* ptr=null)
16
20 };
2122 template struct cascadenode
23 33 };
3435 template class list
36 43 list(linknode* head)
44
47void init(const type& end)
48
59 }
60void show()
61
68 cout<69 }
7071 linknode* getfirst()
72
75private:
76 linknode* first;
77 };
7879 template class cascadelist
80 86
87void addcascadenode(linknode* ptr)
88
9596
void show()
97
110 }
111112 list* converttolist()
113
127 currcnode=currcnode->next;
128 }
129return list;
130131 }
132private:
133 cascadenode* first;
134 };
135136
int main()
137
雙向鍊錶(二級指標實現)
include include typedef struct newlist onelist int insertone onelist old flist,onelist old elist,int a else else if q data a q next null else if q dat...
鍊錶 二級指標的使用
博文的記錄源自閱讀著名的酷殼主頁 coolshell 並茂說明了這個問題 我們在刪除鍊錶的時候,常常需要記錄該結點在鍊錶中是否有前趨prev。如果有,那麼需要把prev next指向該結點的next域,然後再刪除該結點,這樣才能保證鍊錶不會因為刪除結點而 斷開 像這樣 void remove lis...
二級指標刪除單向鍊錶
給定乙個單鏈表,刪除該鍊錶中某些節點。乙個節點該不該刪除由函式remove 決定,該單鏈表刪除的函式原型為 struct listnode removeif struct listnode head,removefn remove 下面給出三種解法,主要是想突出第三種使用二級指標的方法。這個是我自己...