先将概率放大100倍,以方便构造哈夫曼树。
form=1;๙m
ifq!=0{t=lklistmaທllocsizeoflklist;t-data=p-dataທ;t-next=hcນ;hc=t;}
}
p9๗7测试堆栈是否为空:
returntop==-1;๙
5线性结构中元素า之间存在一对一关系,树形结构中ณ元素之间存在一对多关系,图形结构中ณ元素之间存在多对多关系。
7๕在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
a.head==nullb.head→next==null9๗ext==headd.head!ำ=null
11、一个栈的输入序列为1้23…n,若输出序列ต的第一个元素是n,输出第i1next-next==l__
6、一个栈的输入序列ต是:1,2,3则不可能的栈输出序列是__ຕ312___。
7๕、用s表示入栈操作,x表示出栈操作,若元素入栈的顺序为12๐3๑4,为了得到1342๐出栈顺序,相应的s和x的操作串为_sxssxsxx__。
8、__队列__又称作先进先出表。
9๗、组成串的数据元素只能是__字符___。
10、设有c语言描述的二维数组a10่20่,其每个元素占两ä个字节,第一个元素的存储地址为ฦ100,若按行优先顺序存储,则ท元素าa66存储地址为ฦ__3๑52๐__。没说明,则下标从0开始
四、算法与应用题
1设线性表存放在向量aarrsize的前elenum个ฐ分量中且递增有序,试写一算法将x插入到线性表的适当位置,以保持线性表的有序性并分析其时间复杂度。
#definearrsize10่0่
boolsortin色rtelemtypea,ไintelenum,ไelemtypex
{
inti;
ifelenum==arrsize
{
printf“该数组向量已满”;
returnfal色;
}
i=elenum-1;
9hileaix&&ุi=0
{
ai+1้=ai;
i-ๅ-;
}
ai+ใ1=x;
returntrue;
}
2已知带头结点的动态单链表l中的结点是按整数值递增排列的,试写一算法将值x为ฦ的结点插入到表l中,使l仍然有序。
线性表的单链表存储结构
typedefstru9ode
{elemtypedaທta;
stru9๗ext;
}lnode,linklist;
linklistsortin色rtlinklistl,intx带头结点
{
linklistp,q,s;๙
s=linklistmallo9ode;๙
if!s{printf“动态空间分配不成功”;exit-ๅ1;๙}
s-data=x;๙
q=l;๙
p=l-next;
9hilep!ำ=null&&p-datanext;๙
}
s-ๅnext=q-next;
q-next=s;
returnl;