9、反轉鍊錶
為正確反轉乙個鍊錶,需要調整鍊錶中指標的方向。如下圖所示,經過若干操作,我們已經把節點 i 之前的指標調整完畢,這些節點的next都指向前乙個節點。但由於節點 i 的next指向 h ,我們無法在鍊錶中遍歷到 j,所以除了要知道節點 i 本身,還需要知道 i 的前乙個節點 h,同時還需要事先儲存 i 的下乙個節點 j 。所i以需要三個指標。
"反轉後鍊錶為:"
;for
(int i=
0;i)}
10、合併兩個遞增排序好的鍊錶使得產生的新鍊錶中的節點仍是遞增排序的。
注意兩方面的問題:
①合併後的鍊錶中間不要斷裂(遞迴)
②魯棒性(空指標)
}源**
/*
實現單鏈表操作3.0
*/#include
using
namespace std;
//定義節點結構體
struct node
;//定義鍊錶類
class
linklist
;//建構函式
linklist::
linklist()
//建立鍊錶
void linklist::
createlinklist
(int n)
p->next=
null;}
//反轉鍊錶
void linklist::
reverselist
(int n)
pnode-
>next=ppre;
ppre=pnode;
pnode=pnext;
} node* p;
p=prhead;
cout<<
"反轉後鍊錶為:"
;for
(int i=
0;i//合併兩個遞增排序的鍊錶
node* linklist::
mergelist
(node* head1,node* head2)
else
if(head2==
null
)else
else
}return temp;
}//獲取鍊錶的第乙個節點
c 單鏈表基本操作
下午沒事,看資料結構。想到自畢業以後,都沒有寫過這些東西了。寫個鍊錶基本操作,還沒完全測試。includeusing namespace std node 節點 struct node int data node p 單鏈表 class link 通過陣列夠造 link int arr,int le...
C 單鏈表基本操作
include using namespace std struct node class list 建立帶頭結點的鍊錶,head next null 表示鍊錶為空,只有乙個頭結點 void creatlist1 int n 頭插入法建立鍊錶 void creatlist2 int n 尾插入法建立...
C 單鏈表基本操作
鍊錶一直是面試的高頻題,今天先總結一下單鏈表的使用,下節再總結雙向鍊錶的。本文主要有單鏈表的建立 插入 刪除節點等。1 概念 單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 指標,元素就是儲存資料的儲存單元,指標就是...