一单链表的基本操作
i
cludeiostreamusi
g
amespacestddefi
etrue1defi
efalse0defi
eok1defi
eerror0defi
eoverflow2typedefi
tStatustypedefi
tElemTypetypedefstructLNodeElemTypedatastructLNode
extLNodeLi
kListvoidCreateListLi
kListLi
t
Li
kListpL
ewLNodeL
extNULLLi
kListqLfori
ti1i
ip
ewLNodeci
pdatap
extNULLq
extpqpStatusGetElemLi
kListLi
tiElemTypee取第i个元素Li
kListpL
exti
tj1whilepjipp
extj建立一个带头结点的单链表使q指向表尾尾插法创建单链表存储结构
fifpjiretur
errorepdataretur
ok
第i个元素不存在
StatusLi
kI
sertLi
kListLi
tiElemTypeeLi
kListpLi
tj0whilepji1pp
extjifpji1retur
errorLi
kLists
ewLNodesdataes
extp
extp
extsretur
ok插入L中
插入
寻找第i1个结点
i小于1或者大于表长加1生成新结点
StatusListDeleteLi
kListLi
tiElemTypeeLi
kListpLLi
kListqi
tj0whilep
extji1
删除
寻找第i个结点,并令p指向其前驱pp
extj删除位置不合理
ifp
extji1retur
errorqp
extp
extq
exteqdatadeleteqretur
ok
删除并释放结点
2
fvoidMergeListLi
kListLaLi
kListLbLi
kListLcLi
kListpapcpbpaLa
extpbLb
extLcpcLawhilepapbifpadatapbdatapc
extpapcpapapa
extelsepc
extpbpcpbpbpb
extpc
extpapapbdeleteLbvoidshowLi
kListLLi
kListppL
extwhilepcoutpdata