#include
#include
#include
using
namespace std;
//定義單鏈表的節點
typedef
struct lnodelnode,
*linklist;
bool
insertpriornode
(linklist &l,lnode *p, lnode *s)
;bool
insertnextnode
(lnode *p,
int e)
;lnode *
getelem
(linklist l,
int i)
;//初始化鍊錶
bool
initlist
(linklist &l)
l->next =
null
; l-
>data =3;
return
true;}
//按位插入鍊錶元素
bool
listinsert
(linklist &l,
int i,
int e)
if(p ==
null
)return
false
;return
insertnextnode
(p,e);}
//在指定節點後插入元素
bool
insertnextnode
(lnode *p,
int e)
lnode *s =
(lnode *
)malloc
(sizeof
(lnode));
if(!s) s-
>data = e;
s->next = p-
>next;
p->next = s;
return
true;}
//在指點節點前插入元素
bool
insertpriornode
(linklist &l,lnode *p, lnode *s)
s->next = p-
>next;
p->next = s;
swap
(p->data, s-
>data)
;return
true;}
//列印鍊錶
void
printlist
(linklist l)
cout<}//列印單個節點
void
printnode
(lnode *p)
cout<>data<}//單鏈表按位查詢
lnode *
getelem
(linklist l,
int i)
if(i <1)
return
null
;int j =0;
lnode *p = l;
while
(p && jreturn p;
}//單鏈表按元素查詢
lnode *
locateelem
(linklist l,
int e)
//獲得單鏈表的長度
intlength
(linklist l)
return len;
}//尾插法建立單鏈表
linklist list_taiinsert
(linklist &l)
r->next =
null;}
//使用頭插法反轉鍊錶,在初始化鍊錶時,一定要將next置空
linklist reverselist
(linklist &l)
l = newl;
return l;
}int
main()
資料結構筆記 單鏈表的初始化與取值
資料 elementtype 結點 node 1.資料域 2.指標域 一般情況下,為了處理方便,在單鏈表的第乙個結點之前附設乙個結點,稱之為頭結點。頭結點是在首元結點之前附設的乙個結點,其指標域指向首元結點。頭結點的資料元素為整數型時,頭結點的資料域中可存放該線性表的長度 頭指標是指向鍊錶中第乙個結...
單鏈表的初始化
方法一 include using namespace std struct listnode class solution cout head val return positiveoutput head next 該函式的作用是倒序輸出結點值 listnode reverseoutput lis...
資料結構 順序表的初始化
include include define ok 1 define overflow 2 define maxsize 100 define list init size 10 線性表儲存空間的初始分配量 typedef int status status是函式資料型別 其值是函式結果狀態,如ok...