第10章(1 / 2)

加入书签 本章报错

数据结构强烈推荐:

ao0่bo192

p98测试堆栈是否为ฦ满:

先将概率放大100倍,以方便构造哈夫曼树。

头指针是指向链表中第一个结点或为头结点或为元结点的指针;

ifq!ำ=0{t=lklistmallocsizeoflklist;t-dataທ=p-ๅdata;t-next=๡hc;๙hc=t;}

7๕.若目标串的长度为ฦn,模式串的长度为n3๑,则执行模式匹配算法时,在最坏情况下的时间复杂度是

p97测试堆栈是否为空:

491้3

5线性结构中元素之间存在一对一关系,树形结构中ณ元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

本贴给出二叉树先序、中序、后序三种遍历的非递归算法,此三个算法可视为标准算法,直接用于考研答题๤。

1先序遍历非递归算法

#definemaທxsize1้00

typedefstruct

{

逼treeelemmaxsize;๙

inttop;๙

}sqstack;

voidpreorderunrec逼treet

{

sqstacks;๙

sta9its;๙

p=t;

9๗hilep!=null||!stacນkemptys

{

9hilep!=null遍历左ุ子树

{

visitep-data;๙

pushs,p;

p=p-ๅlchild;

}en9hile

if!stackemptys通过下一次循环中的内嵌9๗hile实现右子树遍历

{

p=pops;

p=p-rchild;

}endif

}en9hile

}preorderunrec

2中序遍历非递归算法

#ีdefinemaxsize1้00

typedefstrucນt

{

逼treeelemmaxsize;๙

inttop;๙

}sqstack;

voidinorderunrec逼treet

{

sqstaທcks;

sta9its;

p=t;

9hilep!=null||!stackemptys

{

9๗hilep!ำ=null遍历左子树

{

pushs,ไp;

p=๡p-lchild;๙

}en9hile

if!ำstaທckemptys

{

p=pops;

visitep-data;访问根结点

p=p-rchild;๙通过下一次循环实现右子树遍历

}endif

}en9๗hile

}inorderunrec

3后序遍历非递归算法

#definemaxsize100

typedefenum{l,r}tagtype;

typedefstrucນt

{

逼treeptr;

tagtypetag;๙

}staທ9ode;

typedefstruct

{

sta9odeelemmaທxsize;

inttop;

}sqstack;๙

voidpostorderunrec逼treet

{

sqstacນks;๙

sta9๗odex;

sta9its;

p=t;

do

{

9hilep!=null遍历左ุ子树

{

xptr=p;

xtaທg=๡l;标记为左ุ子树

pushs,x;๙

p=p-ๅlchild;

}

9aptys&&色lemstoptaທg==r

{

x=pops;

p=xptr

↑返回顶部↑

书页/目录

数据结构