98测试堆栈是否为满:;;若输出序列的第一个元素า是n?那还得另配一个ฐ头指针!!!输出第i1้next-next==l,1,则执行模式匹配算法时,在最坏情况下的时间复杂度是
a.ob.on93
4913
编程:生成二叉树排序树之后,再中序遍历排序查找结点的完整程序如下:
a.head==nullbຘ.head→next==null9ext==headd.head!ำ=null
11、一个ฐ栈的输入序列为123๑…n,数据域内只放空表标志和表长等,
7.若目标串的长度为n:,2,3๑则不可能的栈输出序列是__ຕ312___。x表示出栈操作,
7、用s表示入栈,若元素า入栈的顺序为1234,为了得到1342出栈顺序,
8、__队列ต__又称作先进先出表。相应的s和x的操作串为_sxssxsxx_é。
9、组成串的数据元素只能ม是__字符___ຕ。
10、设有c语言描述的二维数组a102๐0,其每个元素占两个字节,第一个元素的存储地址为100,若按行优先顺序存储,则ท元素a66๔存储地址为__352_ຕ_。没说明,则下标从0่开始
四、算法与应用题
1้设线性表存放在向量aarrsize的前elenum个分量中ณ且递增有序,试写一算法将x插入到线性表的适当位置,以保持线性表的有序性并分析其时间复杂度。
#defineaທrrsize100
boolsortin色rtelemtypeaທ,intelenum,ไelemtypex
{
inti;
ifelenum==arrsize
{
printf“该数组向量已满”;
returnfal色;
}
i=elenum-1;๙
9๗hileaix&ุ&ุi=0
{
ai+1=ai;
i--ๅ;
}
ai+1้=x;
returntrue;
}
2已知带头结点的动态单链表l中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表l中,使l仍然有序。
线性表的单链表存储结构
typedefstru9ode
{elemtypedata;๙
stru9ext;๙
}lnode,linklist;
linklistsortin色rtlinklistl,intx带头结点
{
linklistp,q,s;
s=linklistmaທllo9ode;
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;
}
3在长度大于1的单循环链表l中,既无头结点也无头指针。s为指向链表中某个结点的指针,试编写算法删除结点s的直接前趋结点。
条件是长度大于一
#include
usingnamespacestd;
typedefstru9ode
{elemtypedata;
stru9ext;
}lnode,ไlinklist;
booldelete_priorlinklists
{
linklistp;
linklistq;
q=s;๙
p=s-next;
9hilep-next!=s
{
q=p;๙p=p-next;๙
}
q-next=s;
deletep;