问答题

[说明]
下面的流程图实现了正整数序列K(1),K(2),…,K(n)的重排,得到的新序列中,比K(1)小的数都在K(1)的左侧,比K(1)大的数都在K(1)的右侧。以n=6为例,序列12,2,9,13,21,8的重排过程为:
12,2,9,13,21,8
→2,12,9,13,21,8
→9,2,12,13,21,8
→8,9,2,12,13,21
[流程图]

【参考答案】

(1) K(s)<K(t) (2) K(s) (3) i←i-1 (4) t←t+1 (5) s←s+1
热门 试题

多项选择题
[函数2.1说明] 下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。[函数2.1]#include <stdio.h>main() char b[16]=’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’; int c[64],n,i=0,base; printf( Enter a number: );scaaf( %d ,&n); printf( Enter new base: );scanf( %d ,&base); doc[i]= (1) ; i++; n=n base; while( (2) ); printf( Transmit new base: ); for(- -i;i>=0;- -i)printf( %c , (3) );[函数2.2说明] 所谓回文字符中是指正序和逆序拼写相同的字符串,例如astrtsa,adgdtdgda等。下面函数int fun(char *str)的功能是判断字符串str是否是回文,当字符串是回文时,函数返回1,否则返回0。[函数2.2]int fun(char *str) int i,j,l; for(i=0;str[i]! =’ 0’;i++); l=i 2; for(j=0,i- -;j<=1; (4) ) if( (5) ) return 0; return 1;
[函数2.1说明]
下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。
[函数2.1]
#include <stdio.h>
main()
char b[16]=’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’;
int c[64],n,i=0,base;
printf("Enter a number:");scaaf("%d",&n);
printf("Enter new base:");scanf("%d",&base);
doc[i]= (1) ;
i++;
n=n/base;
while( (2) );
printf("Transmit new base:");
for(- -i;i>=0;- -i)printf("%c", (3) );[函数2.2说明]
所谓回文字符中是指正序和逆序拼写相同的字符串,例如astrtsa,adgdtdgda等。下面函数int fun(char *str)的功能是判断字符串str是否是回文,当字符串是回文时,函数返回1,否则返回0。
[函数2.2]
int fun(char *str)
int i,j,l;
for(i=0;str[i]! =’\0’;i++);
l=i/2;
for(j=0,i- -;j<=1; (4) )
if( (5) ) return 0;
return 1;
问答题
[说明] 邻接表是图的一种顺序存储与链式存储结合的存储方法。其思想是:对于图G中的每个顶点 vi,将所有邻接于vi的顶点vj连成一个单链表,这个单链表就称为顶点vi的邻接表,其中表头称作顶点表结点VertexNode,其余结点称作边表结点EdgeNode。将所有的顶点表结点放到数组中,就构成了图的邻接表AdjList。邻接表表示的形式描述如下: #define MaxVerNum 100 *最大顶点数为100* typedef struct node *边表结点* int adjvex; *邻接点域* struct node *next; *指向下一个边表结点的指针域* EdgeNode;typedef struct vnode *顶点表结点* int vertex; *顶点域* EdgeNode *firstedge; *边表头指针* VertexNode;typedef VertexNode AdjList[MaxVerNum]; *AdjList是邻接表类型* typedef struct AdjList adjlist; *邻接表* int n; *顶点数* ALGraph; *ALGraph是以邻接表方式存储的图类型* 深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。 下面的函数利用递归算法,对以邻接表形式存储的图进行深度优先搜索:设初始状态是图中所有顶点未曾被访问,算法从某顶点v出发,访问此顶点,然后依次从v的邻接点出发进行搜索,直至所有与v相连的顶点都被访问;若图中尚有顶点未被访问,则选取这样的一个点作起始点,重复上述过程,直至对图的搜索完成。程序中的整型数组visited[]的作用是标记顶点i是否已被访问。[函数]void DFSTraverseAL(ALGraph *G) *深度优先搜索以邻接表存储的图G* int i; for(i=0;i< (1) ;i++) visited[i]=0; for(i=0;i< (1) ;i++)if( (2) ) DFSAL(G,i);void DFSAL(ALGraph *G,int i) *从Vi出发对邻接表存储的图G进行搜索* EdgeNode *p; (3) ; p= (4) ; while(p!=NULL) *依次搜索Vi的邻接点Vj* if(! visited[ (5) ]) DFSAL(G, (5) ); p=p->next; *找Vi的下一个邻接点*