大学《算法数据结构》复习试题及答案

时间:2017-04-19 11:48:47 算法与数据结构 我要投稿

大学《算法数据结构》复习试题及答案

  数据结构是主体,通用算法是附属(仅是查找,排序等)。以下是由阳光网小编整理关于大学《算法数据结构》复习试题的内容,希望大家喜欢!

大学《算法数据结构》复习试题及答案

  大学《算法数据结构》复习试题及答案(一)

  算法设计题(每小题6分.共12分)

  1.请写出在循环队列上进行插入操作的算法。要求若插入成功则返目true,否则返回else.

  循环队列定义如下:

  struet CyclicQueue {

  ElemTy[ae elem[M]; //M为已定义过的整型常量,表示队列数组空间长度

  int rear,front; //rear指向队尾元素后一个位置,front指向队头元索

  int tag;

  };

  注意:当front=rear且tag=0时, 队列空,当front=rear且tag=1时,队列满,即队列中已有M个元素.

  bool EnCQueue(CyclicQueue& Q, ElemType x){ {/*编写该函数体。/}

  //在下面编写函数体

  2.已知二又树中的结点类型Bin·rreeNode定义为:

  slruct BinTreeNode {char data;BinTreeNode * left, * right;};

  其中data为结点值域,left和righ~分别为指向左、右子女结点的指针域,根据下面函数声明编写出求一棵二叉树中结点总数的递归算法,该总数值由函数返回.假定BT初始指

  向这棵二又树的.根结点.

  int BTreeCount(BinTreeNode* BT);

  答案

  算法设计题(2小题,每小题6‘分,共12分)

  1.分步给分

  if (Q. rear=Q, front && Q tag== 1) return false;

  Q. elem[Q, rear] = x;

  Q. rtar= (Q. rear+ 1) %M;

  if(Q. rear== Q. front) Q. tag= 1;

  return true;

  2.分步给分

  int BTreeCount(BinTreeNode * BT)

  (

  if(BT== NULL)

  return O;

  else

  return BTreeCount ( BT->left) +BTreeCount(BT-> fight) + l;

  大学《算法数据结构》复习试题及答案(二)

  1.设字符串类String具有下列操作:

  int Length()const; //计算字符串的长度

  chargetData(k); //提取字符串第k个字符的值

  若字符串Tar的值为“ababcabcacbab“,的值为‘abcac”时,

  (1)给出下面算法执行后返回的结果,

  (2)给出下面。算法的功能。

  include "String, h"

  int unknown(String& Tar, strlng& Pat) coast

  {

  for (int i<O; i<=Tar. LengthO-Pat. Length(); i++) {

  iht j=O;

  while (j<Pat. Length())

  if (Tar. getOata(i+j) ==Pat. getData(j)) j+ +

  else break;

  if (j==Pat. Length()) return i;

  return –1;

  }

  返回结果:

  算法功能:

  2。已知二叉树中的结点类型BinTrceNode定义为:

  struct BinTreeNode {ElemType data; BinTreeNode * left, * right; }

  其中data为结点值域,left和right分别为指向左、右子女结点的指针域.下面函数的功能是返回二又树BT中值为X的结点所在的层号.根据题意按标号把合适的内容填写到算法后面相应标号的位置.

  int NodeLevel(BinTreeNode * BT, ElemType X)

  if (BT==NULL) return -- 1; //空树的层号为一1

  else if (BT->data==X) return 0; //根结点的层号为o

  //向于树中查找X结点

  else {

  im cl =NodeLevel(BT->left, X);

  if (cl>=0) (1)

  iht e2= (2) ;

  if ( (3) ) return c2+1;

  //若树中不存在K结点则 返回一l

  else return -1

  }

  }

  (1)

  (2)

  (3)

  3.假定一个有向无权图采用邻接矩阵存储,请指出F面算法的功能。

  Template<class Type>

  void Graph<Type>::unknown(int i)

  {

  int d,j;

  d=0;

  for (j=0; j<CurremNodes; j++){ //CurremNodes为田中的顶点效

  if (Edge[i][j]) {d++ ; Edge[i][j]=0; }

  if (Edge[j][i]) {d+ +; Edge[j][i]=0; }

  }

  CurrentEdges-=d; //CurremEdges //为图中的边数

  }

  算法功能:

  答案

  1

  返回结果,5

  算法功能:字符串的模式匹配算法.

  2.

  (1)returncl+l

  (2)NodeLevel(BT一>,right,X)

  (3)<c2>=0)

  3,从有向无权图中删除所有与顶点i相连的边,包括出边和人边。


【大学《算法数据结构》复习试题及答案】相关文章:

1.算法与数据结构试题及答案

2.《算法数据结构》期末试题及答案

3.大学《算法数据结构》试题判断题及答案

4.算法与数据结构模拟试题及答案

5.大学《数据结构》试题及答案

6.2017年算法与数据结构试题及参考答案

7.2017年算法与数据结构模拟试题及答案

8.算法与数据结构模拟试题及参考答案