全球旧事资料 分类
算法讨论算法中查找x的路线从右上角开始,向下(当xAij)或向左(当xAij)。向下最多是m,向左最多是
。最佳情况是在右上角比较一次成功,最差是在左下角(Abc),比较m
次,故算法最差时间复杂度是Om
)。r
r
15、本题要求建立有序的循环链表。从头到尾扫描数组A,取出Ai(0i
)然后到链表中去查找值为Ai的结点,若查找失败,则插入。r
Li
kedListcreatElemTypeAi
t
r
由含
个数据的数组A生成循环链表,要求链表有序并且无值重复结点r
Li
kedListhr
hLi
kedListmallocsizeofLNode申请结点r
h
exth形成空循环链表r
fori0i
ir
prehr
ph
extr
whilephpdataAir
preppp
ext查找Ai的插入位置r
ifphpdataAi重复数据不再输入r
sLi
kedListmallocsizeofLNoder
sdataAipre
extss
extp将结点s链入链表中r
r
forr
retur
hr
算法结束r
r
16、证明由二叉树的中序序列和后序序列,也可以唯一确定一棵二叉树。r
29①试找出满足下列条件的二叉树r
1)先序序列与后序序列相同2)中序序列与后序序列相同r
3)先序序列与中序序列相同4)中序序列与层次遍历序列相同r
r
17、假设以I和O分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。(15分)r
(1)A和D是合法序列,B和C是非法序列。r
(2)设被判定的操作序列已存入一维数组A中。r
i
tJudgecharAr
判断字符数组A中的输入输出序列是否是合法序列。如是,返回true,否则返回false。r
i0i为下标。r
jk0j和k分别为I和字母O的的个数。r
whileAi‘0’当未到字符数组尾就作。r
switchAir
case‘I’jbreak入栈次数增1。r
case‘O’kifkjpri
tf“序列非法
”;exit0r
r
i不论Ai是‘I’或‘O’,指针i均后移。r
ifjkpri
tf“序列非法
”;retur
falser
elsepri
tf“序列合法
”;retur
truer
算法结束。r
r
18、4、tvoidLi
kList_reverseLi
klistLr
链表的就地逆置为简化算法假设表长大于2r
r
pL
extqp
extsq
extp
extNULLr
whiles
extr
r
q
extppqr
qsss
ext把L的元素逐个插入新表表头r
r
q
extps
extqL
extsr
Li
kList_reverser
r
19、二叉树的层次遍历序列的第一个结点是二叉树的根。实际上,层次遍历序列中的每个结点都是“局部根”。确定根后r
好听全球资料 返回顶部