資料結構 單鏈表的初始化及其運算操作

2021-10-08 14:25:44 字數 2019 閱讀 4774

#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...