全国2006年1月高等教育自学考试数据结构试题(六)

时间:2011-12-25 13:26:14

微信搜索关注"91考试网"公众号,领30元,获取事业编教师公务员等考试资料40G
ng″时,写出f31(t1,t2)的返回值;

4)简述函数f31的功能。

inf f31(LinkStr t1,LinkStr t2)

{//串值以′′为结束符

int i;

while (1){

for (i=0;i<NodeSize;i++){

if (t1->data[i]= =&&t2->data[i]= =return 0;

if(t1->data[i]= =))return –1;

if(t2->data[i]= =))return 1;

if(t1->data[i]>t2->data[i]return 1;

if(t1->data[i]<t2->data[i]return –1;

}

t1=t1->next;

t2=t2->next;

}

}

(1)

(2)

(3)

(4)

32.设二叉树采用二叉链表存储结构,结点的数据域data为字符类型。阅读下列算法,并回答问题:

1)对于如图所示的二叉树,写出执行函数f32的输出结果;

2)简述函数f32的功能。

void  f32(BinTree T)

{     Stack s;   //定义栈s

BinTree p,q;

if (T= =NULL) return;

InitStack(&s);

p=T;

do   {

while (p){

Push(&s,p);

if (p->lchild)p=p->lchild;

else p=p->rchild;

}

while (!Stack Empty(s)&&q=StackTop(s)&&q->rchild= =p){

p=Pop(&s);

printf(%c,p->data);

}

if(!StackEmpty(s)){

q=StackTop(s);

p=q->rchild;

}

} while (! Stack Empty(S));

}

(1)

(2)

33.已知有向图的邻接表表示的形式说明如下:

#define Max Num         50                 //图的最大顶点数

typedef struct node {

int adjvex;                               //邻接点域

struct node * next;                         //链指针域

}EdgeNode;    //边表结点结构描述

typedef struct {

char vertex;                            //顶点域

EdgeNode  *firstedge;                    //边表头指针

}VertexNode;      //顶点表结点结构描述

typedef struct{

Vertex Node adjlist [MaxNum];                          //邻接表

int n,e;                                             //图中当前的顶点数和边数

}ALGraph;  //邻接表结构描述

  下列函数f33是从有向图G中删除所有以vi为弧头的有向边。请在空缺处填入合适的内容,使其成为一个完整的算法。

void f33 (ALGraph * G, int i)

{    int j;

EdgeNode * p, *q;

for  (j=0;j<G->n;j= + +){

p=G->adjlist [j].firstedge;

while(          (1)             {

q=p;      p=p->next;

}

if(p!=NULL) {

       if (p !=G->adjlist[j].firstedge)q->next=p->next;

else(          (2)  &nbs


微信搜索关注"91考试网"公众号,领30元,获取公务员事业编教师考试资料40G