資料結構作業5 單鏈表(程式設計題)

2021-09-03 08:20:02 字數 3160 閱讀 4667

實現單鏈表的基本運算:初始化、插入、刪除、求表的長度、判空、釋放。

(1)初始化單鏈表l,輸出l->next的值;

(2)依次採用尾插法插入元素:輸入分兩行資料,第一行是尾插法需要插入的字元資料的個數,第二行是具體插入的字元資料。

(3)輸出單鏈表l;

(4)輸出單鏈表l的長度;

(5)判斷單鏈表l是否為空;

(6)輸出單鏈表l的第3個元素;

(7)輸出元素a的位置;

(8)在第4個元素位置上插入『x』元素;

(9)輸出單鏈表l;

(10)刪除l的第3個元素;

(11)輸出單鏈表l;

(12)釋放單鏈表l。

兩行資料,第一行是尾插法需要插入的字元資料的個數,第二行是具體插入的字元資料。

按照題目要求輸出

5

a b c d e

0

a b c d e

5 noc1

a b c x d e

a b x d e

#include

#include

#include

using namespace std;

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

#define overflow -2

typedef

int status;

typedef

char elemtype;

typedef

struct lnode

lnode,

*linklist;

status creatlist_l

(linklist &l)

;status linklistinsert

(linklist &l,

int pos,elemtype e)

;status print_l

(linklist &l)

;status length_l

(linklist &l)

;status judgeempty_l

(linklist &l)

;status getval_l

(linklist &l,

int pos)

;status listdelete

(linklist &l,

int pos)

;status locate_l

(linklist &l,elemtype e)

;void

listfree

(linklist &l)

;int

main()

print_l

(l);

//3、輸出單鏈表

length_l

(l);

//4、輸出單鏈表的長度if(

judgeempty_l

(l))

//5、判斷是否為空

cout<<

"yes"

cout<<

"no"

(l,3);

//6、輸出單鏈表中的第三個元素

e='a';

//7、輸出元素a的位置

locate_l

(l,e)

; e=

'x';

//8、在第四個元素位置上插入x元素

linklistinsert

(l,4

,e);

print_l

(l);

//9、輸出單鏈表

listdelete

(l,3);

//10、刪除第三個元素

print_l

(l);

//11、輸出單鏈表

listfree

(l);

//12、釋放單鏈表

}else

return error;

}status creatlist_l

(linklist &l)

status linklistinsert

(linklist &l,

int pos,elemtype e)

if(numreturn false;

tmp=

(lnode*

)malloc

(sizeof

(lnode));

//申請乙個新節點暫存插入元素if(

!tmp)

return overflow;

tmp->data=e;

tmp->next=

null

; tmp->next=curp;

reap->next=tmp;

return ok;

}status print_l

(linklist &l)

cout<}status length_l

(linklist &l)

cout

}status judgeempty_l

(linklist &l)

status getval_l

(linklist &l,

int pos)

if(numreturn false;

cout

(linklist &l,

int pos)

if(numreturn false;

reap->next=curp->next;

return ok;

}void

listfree

(linklist &l)

free

(curp);}

status locate_l

(linklist &l,elemtype e)if(

!curp)

return false;

cout

}

資料結構作業5 單鏈表(程式設計題)

已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的交集新鍊錶s3。輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1表示序列的結尾 1不屬於這個序列 數字用空格間隔。在一行中輸出兩個輸入序列的交集序列,數字間用空格分開,結尾不能有多餘空格 若新鍊錶為空,輸出null。1 2 ...

資料結構作業5 單鏈表

6 1 帶頭結點的單鏈表就地逆置 10 分 本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse l linklist l 要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。v...

資料結構作業5 單鏈表(選擇題)

2 1帶頭結點的單鏈表h為空的判定條件是 2分 析 帶頭結點判空表的條件h next null 不帶頭結點判空表的條件h null 此時h是頭指標 2 2不帶表頭附加結點的單鏈表為空的判斷條件是頭指標head滿足條件 2分 2 3對於乙個具有n個結點的單鏈表,在給定值為x的結點後插入乙個新結點的時間...