不帶頭結點的單鏈表的構造
頭插法
template
<
class
t>
linklist
::linklist
(t a,
int n,string s)
}
尾插法:
template
<
class
t>
linklist
::linklist
(t a,
int n,
int w,string s)
}
#include
using
namespace std;
template
<
typename t>
struct node//結點
;template
<
class
t>
class
linklist
linklist
(t a,
int n)
;//根據陣列a和元素個數n構件非空單鏈表(利用頭插法)
linklist
(t a,
int n,
int w)
;//根據陣列a和元素個數n構建非空單鏈表(利用尾插法)
~linklist()
;//析構函式
void
printlist()
;//輸出所有的元素值
void
insert
(int i, t x)
;//根據位置i插入資料x
t deletez
(int i)
;//根據值i刪除i所在的結點
t deletew
(int m)
;//根據位置m刪除m位置處的結點
private
: node
*first;
//頭指標,指向頭結點};
template
<
class
t>
linklist
::linklist
(t a,
int n)
}template
<
class
t>
linklist
::linklist
(t a,
int n,
int w)
r->next=
null;}
template
<
class
t>
void linklist
::printlist()
cout<}template
<
class
t>
void linklist
::insert
(int i, t x)if(
!p)
cout<<
"位置"
}template
<
class
t>
t linklist
::deletez
(int i)
p=q;
q=q-
>next;}if
(a==0)
cout<<
"error"
<}template
<
class
t>
t linklist
::deletew
(int i)
if(p==
null
||p-
>next==
null
) cout<<
"error"
template
<
class
t>
linklist::~
linklist()
}int
main()
while
(cin>>s)
int y;
cin>>y;
int z;
cin>>z;
linklist<
int>
list1
(a,n,0)
;//尾插法構建
list1.
printlist()
;//遍歷輸出
linklist<
int>
list2
(b,m)
;//頭插法構建
list2.
printlist()
;//遍歷輸出
list1.
deletez
(y);
//按值刪除
list1.
deletew
(z);
//按位刪除
list1.
~linklist()
;//析構
list2.
~linklist()
;//析構
return0;
}
不帶頭結點的單鏈表
slist.h pragma once typedef int sldatatype typedef struct slistnode slistnode 不帶頭節點的單鏈表 鍊錶初始化 void slistinit slistnode phead 建立新結點 slistnode slistnewn...
不帶頭結點的單鏈表
不帶頭結點的鍊錶的實現 核心是直接設定頭指標指向第乙個節點 要注意此時的l的位址可能會發生改變.同時還要注意一級指標和二級指標的區別.注意linklist l和linklist l的區別 和帶結點的單鏈表的操作相比較,要考慮到頭指標就是頭結點,在一些會改變頭結點的情況下要仔細考慮.include i...
不帶頭結點的單鏈表
單鏈表也可以不設頭結點,如圖212 所示。顯 然,基於這種結構的基本操作和帶有頭結點的線性鏈 表基本操作是不同的。bo2 8.cpp 是不帶頭結點的線 性鍊錶的基本操作。bo2 8.cpp 不帶頭結點的單鏈表 儲存結構由c2 2.h定義 的部分基本操作 9個 define destroylist c...