實現單鏈表的基本運算:初始化、插入、刪除、求表的長度、判空、釋放。
(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。
兩行資料,第一行是尾插法需要插入的字元資料的個數,第二行是具體插入的字元資料。
按照題目要求輸出
5a b c d e
0a 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的結點後插入乙個新結點的時間...