ao0่bo192
p98测试堆栈是否为ฦ满:
先将概率放大100倍,以方便构造哈夫曼树。
头指针是指向链表中第一个结点或为头结点或为元结点的指针;
ifq!ำ=0{t=lklistmallocsizeoflklist;t-dataທ=p-ๅdata;t-next=hc;๙hc=t;}
7๕.若目标串的长度为ฦn,模式串的长度为n3๑,则执行模式匹配算法时,在最坏情况下的时间复杂度是
p97测试堆栈是否为空:
491้3
5线性结构中元素之间存在一对一关系,树形结构中ณ元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
本贴给出二叉树先序、中序、后序三种遍历的非递归算法,此三个算法可视为标准算法,直接用于考研答题。
1先序遍历非递归算法
#definemaທxsize1้00
typedefstruct
{
逼treeelemmaxsize;๙
inttop;๙
}sqstack;
voidpreorderunrec逼treet
{
sqstacks;๙
sta9its;๙
p=t;
9๗hilep!=null||!stacນkemptys
{
9hilep!=null遍历左ุ子树
{
visitep-data;๙
pushs,p;
p=p-ๅlchild;
}en9hile
if!stackemptys通过下一次循环中的内嵌9๗hile实现右子树遍历
{
p=pops;
p=p-rchild;
}endif
}en9hile
}preorderunrec
2中序遍历非递归算法
#ีdefinemaxsize1้00
typedefstrucນt
{
逼treeelemmaxsize;๙
inttop;๙
}sqstack;
voidinorderunrec逼treet
{
sqstaທcks;
sta9its;
p=t;
9hilep!=null||!stackemptys
{
9๗hilep!ำ=null遍历左子树
{
pushs,ไp;
p=p-lchild;๙
}en9hile
if!ำstaທckemptys
{
p=pops;
visitep-data;访问根结点
p=p-rchild;๙通过下一次循环实现右子树遍历
}endif
}en9๗hile
}inorderunrec
3后序遍历非递归算法
#definemaxsize100
typedefenum{l,r}tagtype;
typedefstrucນt
{
逼treeptr;
tagtypetag;๙
}staທ9ode;
typedefstruct
{
sta9odeelemmaທxsize;
inttop;
}sqstack;๙
voidpostorderunrec逼treet
{
sqstacນks;๙
sta9๗odex;
sta9its;
p=t;
do
{
9hilep!=null遍历左ุ子树
{
xptr=p;
xtaທg=l;标记为左ุ子树
pushs,x;๙
p=p-ๅlchild;
}
9aptys&&色lemstoptaທg==r
{
x=pops;
p=xptr