10、已知图G=(V, E),其中V={v1,v2,v3,v4,v5}, E={
11、设有关键码序列{20,35,40,15,30,25,38},请给出平衡二叉树的构造过程(只需要给出不平衡时到平衡的过程即可)。
12、已知散列函数为H(K)=K mod 13,健值序列为11,31,15,44,06,78,12,25,38,84,19,49,采用拉链法处理冲突,试构造开散列表,并计算查找成功的平均查找长度。
13、对于下列一组关键字47,56,15,45,80,19,9,61,试写出快速排序每一趟的排序结果。
14、对下面的关键字集(30,15,21,40,25,26,36,37),若查找表的装填因子为0.8,采用线性探测再散列解决冲突:(1)设计哈希函数;(2)画出哈希表;(3)求查找成功的平均查找长度。
15、按顺序输入下列顶点对: (V1, V2)、(V1, V6)、(V2, V6)、(V1, V4)、(V6, V4)、(V1,
V3)、(V3, V4)、(V6, V5)、(V4, V5)、(V1, V5)、(V3, V5)。(顶点序列为:V1,V2,V3,V4,V5,V6)
(1)画出相应的邻接表。
(2)写出在邻接表上,从顶点3开始(表下标从0开始)的DFS序列和DFS生成树。
五、算法与程序设计
1、阅读算法完成题目要求:
(1)说出下列算法的功能。
 template 
 Binnode
bool  Unknown (Binnode
p=first->next; q=first->prior;
while(p!=q && p->prior!=q)
if(p->data==q->data) {
p=p->next; q=q->prior; }
else return 0; return 1; }
(2)根据下列算法和输入的数据画出生成的链表形式。
template 
LinkList
 Node
       first->next=NULL;;                 for (int i=0; i
s=new Node
s->next=first->next; first->next=s; } }
输入数据为:10 9 8 7 6 5
(3)说出下列算法的功能,它是采用什么结构实现的。
 template 
void BiTree
 BiNode
(4)阅读下列算法求出调用该算法后输出结果。
void AE(Stack& S)
{
InitStack(S); Push(S,10); Push(S,20); Push(S,30);
int x=Pop(S)+2*Pop(S); Push(S,x);
int i,a[4]={7,9,15,18};
for(i=0;i<4;i++) Push(S,a[i]);
        while(!StackEmpty(S)) cout< 输出结果为:  (5)阅读下列算法:(设L是带头结点的单链表的头指针,并为已知的LinkList类型) void DeleteX(LinkList &L){           p=L->next;            while(p&& p->next->data!=x){               q=p;p=p->next;          }           if(p){   q->next=p->next;  free(p); }       }  算法的功能:  (6)设有一个由正整数组成的无序单链表,阅读下面的算法,指出该算法的功能。  void  F1(Linklist &L){    p=L→next; pre=p;      while(p){ if(p→data pre=p; p=p→next;        }  printf(pre→data);       if(pre→next && pre→data%2==0) {  p=pre→next,   pre→next=p→next;free(p);  }  }  算法功能:   2、程序设计  (1) 设有一单链表L,结点结构为data|next,编写算法判断该单链表L中的元素是否 成等差关系,即:设各元素值次为a1,a2,a3,…,an,判断ai+1-ai=ai-ai-1是否成立。若是返回1,否则返回0。          函数说明为:int dengcha(Node (2)写出二分查找的非递归算法。(要求统计查找过程中元素的比较次数)           函数说明为: int  binsearch(int r[ ], int n,int k);        (3)设单链表以非递减有序排列,设计算法实现在单链表中删除值相同的多余结点。     函数说明为:Void Linklist::purge(Node           (4)写出图在邻接表存储结构下广度优先的遍历算法。 函数说明为:  template  函数说明为:void ALGraph ::BFSTraverse(int v);        (5)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。      (6)设计一算法判断一个单链表中的元素是否对称。       (7)设计在链式存储结构上交换二叉树中所有结点左右子树的算法。