全球旧事资料 分类
211设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。解:StatusI
sertOrderListSqListvaElemTypex在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法i
tiifvale
gthvalistsizeretur
OVERFLOWforivale
gthi0xvaelemi1i
vaelemivaelemi1vaelemixvale
gthretur
OK
212设Aa1am和Bb1b
均为顺序表,A和B分别为A和B
中除去最大共同前缀后的子表。若AB空表,则AB;若A空表,而B空表,或者两者均不为空表,且A的首元小于B的首元,
下载后可复制编辑
f经典文档
则AB;否则AB。试写一个比较A,B大小的算法。解:StatusCompareOrderListSqListASqListBi
tikjkAle
gthBle
gthAle
gthBle
gthfori0ikiifAelemiBelemij1ifAelemiBelemij1ifAle
gthkj1ifBle
gthkj1ifAle
gthBle
gthj0retur
j
213试写一算法在带头结点的单链表结构上实现线性表操作LocateLx
解:i
tLocateElem_LLi
kListLElemTypex
i
ti0Li
kListpL
下载后可复制编辑
f经典文档
whileppdataxpp
exti
ifpretur
0elseretur
i214试写一算法在带头结点的单链表结构上实现线性表操作Le
gthL。解:返回单链表的长度i
tListLe
gth_LLi
kListLi
ti0Li
kListpLifppp
extwhilep
pp
extiretur
i
下载后可复制编辑
f经典文档
215已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和
。试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。请分析你的算法的时间复杂度。
解:voidMergeList_LLi
kListhaLi
kListhbLi
kListhc
Li
kListpapbpahapbhbwhilepa
extpb
ext
papa
extpbpb
extifpa
exthchbwhilepb
extpbpb
extpb
extha
extelsehchawhilepa
extpapa
ext
下载后可复制编辑
f经典文档
pa
exthb
ext216已知指针la和lb分别指向两个无头结点单链表中的首元结点。下列算法是从表la中删除自第i个元素起共le
个元素后,将它们插入到表lb中第i个元素之前。试问此算法是否正确?若有错,请改正之。StatusDeleteA
dI
sertSubLi
kedListlaLi
kedListlbi
tii
tji
tle
ifi0j0le
0retur
INFEASIBLEplak1whilekipp
extkqpwhilekle
qq
extkslbk1whilekjss
extks
extpq
exts
extretur
OK解:StatusDeleteA
dI
sertSubLi
kListlaLi
kListlbi
t
下载后可复制编辑
fii
tji
tlr
好听全球资料 返回顶部