35. 设计一个用链表表示的直接选择排序算法。
33. 以下运算实现在链栈上的退栈,请在______处用适当的语句予以填充。
int Pop(LStackTp*is,DataType*x)
{ LStackTp*P;
if(1s!=NULL)
{ p=ls;
*x=______;
ls=ls—>next;
______;
return(1);
} else return(0);
}
34. 分析下面程序段的时间复杂度______。
j=1;
while(j<=n)
{j=j*2;
}
30. 假设有一个容量为5的队列,假设其初始状态为front=rear=0,则对此队列进行下列操作之后,请画出此时的头、尾指针的变化情况和相应的队列内元素的存储情况。 (1)队列为空(即没有任何元素进入); (2)A,B,C入队; (3)A出队; (4)B,C出队,此时队列为空。
31. 以下运算实现在循环队上判队空,请在______处用适当的语句予以填充。
int EmptyCycQueue(CycqcleueTp sq)
{ if(______)retum(1);
else return(0);
}
32. 以下算法在有序表R中用二分查找法查找键值等于K的元素,请分析程序,并在______上填充合适的语句。
int binsearch(sqtable R,keytype K)
{low=l;hig=R.n;/*置查找区间初值。low,hig分别标记查找区间的下、上界*/
while(low<=hig)
{ mid=(low+hig)/2;
switch
{ case K==R.item[i].key:return(mid); /*找到,返回位置mid*/
case K<R.item[i].key:______;break;/*缩小区间*/
case K>R.item[i].key:______;break;/*缩小区间*/
}
}
return(0); /*若区间长度已为0但仍不成功,则返回0,表示查找不成功*/
}
29. 进行多项式相加,采用哪一种表示方法处理较为简单?
多项式A(x)=anXn+an-1Xn-1+…+a1X+a0的线性表表示法有下列两种可能的形式:
A=(n,an,an-1,…,a1,a0)
A=(m,1m-1,bm-1,1m-2,bm-2,…,10,b0)
其中:m为非零项的个数,1i,bi分别为非零项的指数和系数。试分析:
两种表示方法对存储空间的需要情况;
27. 已知串S=‘(xyz)*’,t=‘(x+z)*y’,试利用串的基本运算将s串转化为t串,t串转化为s串。
26. 试分别画出具有3个结点的树和具有3个结点的二叉树的所有不同的形态。
2014年4月全国自主考试(网络操作
2009年4月全国自主考试(网络操作
2009年7月全国自主考试(网络操作
2010年4月全国自主考试(网络操作
2010年7月全国自主考试(网络操作
2011年4月全国自主考试(网络操作
2011年7月全国自主考试(网络操作
2012年4月全国自主考试(网络操作
2012年7月全国自主考试(网络操作
2013年4月全国自主考试(网络操作