python实现单链表快速排序升序linkedqueue_数据结构1
一、
(
(本題
15
分)試設(shè)計(jì)一個(gè)結(jié)點(diǎn)數(shù)據(jù)類型為整型的帶表頭結(jié)點(diǎn)的有序單
鏈表,然后設(shè)計(jì)一個(gè)算法,該算法將這個(gè)有序單鏈表劃分成兩個(gè)單鏈表,使
得第一個(gè)單鏈表中包含原單鏈表中所有數(shù)值為奇數(shù)的結(jié)點(diǎn),
第二個(gè)單鏈表中
包含原單鏈表中所有數(shù)值為偶數(shù)的結(jié)點(diǎn),
且兩個(gè)單鏈表中結(jié)點(diǎn)的相對排列順
序與原單鏈表中相同。注意:要求使用原單鏈表的空間,表頭結(jié)點(diǎn)可以另辟
空間。
[
解答
]
void?split(LinkList?&HL,?LinkList?&L1,?LinkList?&L2)?{
q1=L1=?(LinkList)?malloc(sizeof(LNode));
q2=L2=?(LinkList)?malloc(sizeof(LNode));
p=HL->next;
while?(p!=NULL)?{
if?(p->date?%?2?!=?0)?{
q1->next=?p;?q1=p;}
else
q2->next=?p;?q2=p;}
p=p->next;
}
q1->next=q2->next=NULL;
free(HL);
}
二、
(本題
20
分)
試設(shè)計(jì)一個(gè)遞歸算法,
判斷二叉樹
T
是否是滿二叉樹,
假
設(shè)
T
是以二叉鏈表存儲。
typedef?struct?BiTNode{
TElemType?data;
Struct?BiTNode?*lchild,?*rchild;
}?BiTNode,?*BiTree;
解答:
滿二叉樹中任一個(gè)結(jié)點(diǎn)為根的子樹都是滿二叉樹。
算法:
(
1
)如果二叉樹
T
是空樹,則是滿二叉樹;
(
2
)如果二叉樹
T
非空,左右子樹都是滿二叉樹,而且深度一樣,則
T
是滿二叉樹;
(
3
)如果二叉樹
T
非空,左子樹或右子樹不是滿二叉樹,則不是滿二叉樹;
(
4
)如果二叉樹
T
非空,左右子樹都是滿二叉樹,但深度不一樣,則
T
不是滿二叉樹。
//
該函數(shù)判斷二叉樹
T
是否是滿二叉樹
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的python实现单链表快速排序升序linkedqueue_数据结构1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杂项题的基本解题思路——3、压缩文件处理
- 下一篇: 杂项题的基本解题思路——4、流量取证技术