数据结构
VIP题库
写出直接插入排序算法。
阅读下列算法,并回答问题:(1)假设数组L[8]={3,0,5,1,6,4,2,7},写出执行函数调用f33(L,8)后的L。(2)写出上述函数调用过程中进行元素交换操作的总次数。void f33(int R[],int n){int i,t;for(i=0;i<n-1;i++)while(R[i]!=i){t=R[R[i]];R[R[i]]=R[i];R[i]=t;}}
(1)对于下列图G的邻接矩阵,写出函数调用f32(&G,3)的返回值。(2)简述函数f32的功能。(3)写出函数f32的时间复杂度。int f32(MGraph *G,int i){int d=0,j;for(j=0;j<G->n;j++){if(G->edges[i][j]) d++;if(G->edges[j][i]) d++;}return d;}
阅读下列函数algo,并回答问题。(1)假设队列q中的元素为(2,4,5,7,8),其中“2”为队头元素。写出执行函数调用algo(&q)后的队列q。(2)简述算法algo的功能。void algo(Queue &q){Stack S;InitStack(&S);while(!QueueEmpty(Q))Push(&S,DeQueue(Q));while(!StackEmpty(&S))EnQueue(Q,Pop(&S));}
请在下列算法的横线上填入适当的语句。int inclusion(LinkList ha,LinkList hb){//以ha和hb为头指针的单链表分别表示有序表A和B,本算法判别表A是否包含在表//B内,若是,则返回1,否则返回0LinkList pa,pb;pa=ha->next;pb=hb->next;___(1)___While___(2)___if(pa->data==pb->data)___(3)___else___(4)______(5)___}
试用冒泡法对数列{45,73,12,23,52,5,38}进行递增排序,写出第1、2、3、4趟排序结果,并给出冒泡排序算法的时间复杂度。
已知散列表的长度为11,散列函数H(key)=key%11,采用线性探测法解决冲突,试用关键字值的序列:75,25,80,35,60,46,50,55建立散列表。
设有字符集{A,B,C,D,E,F},各字符使用频率对应为{2,4,5,13,9,18},试画出哈夫曼树(要求任一结点的左孩子权值小于右孩子)。
分别写出下图所示的二叉树的先序遍历、中序遍历和后序遍历三种访问方式的结点访问序列。
已知二叉链表的类型定义如下:Typedef struct btnode{DataType data;struct btnode *lchild,*rchild;}*BinTree;假定visit(bt)是一个已定义的过程,其功能是访问指针bt所指结点。设计递归算法preorder(BinTree bt)实现在二叉链表上的先序遍历。
«
1
2
...
18
19
20
21
22
23
24
...
32
33
»