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