数据结构练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.链表结点类和链表类定义:
template
struct Node
{ T data;
Node
};
template
class LinkList
{ public:
LinkList( ); //建立只有头结点的空链表
LinkList(T a[ ], int n); //建立有n个元素的单链表
~LinkList(); //析构函数
void Insert(int i, T x); //在单链表中第i个位置插入元素值为x的结点 T Delete(int i); //在单链表中删除第i个结点
void PrintList( ); //遍历单链表,按序号依次输出各元素private: Node
};
2.二叉树类基本定义:
template
struct BiNode //二叉树的结点结构
{ T data;
BiNode
};
template
class BiTree
{public:
BiTree( ); //构造函数,初始化一棵二叉树,其前序序列由键盘输入 ~BiTree(void); //析构函数,释放二叉链表中各结点的存储空间BiNode
void PreOrder(BiNode
void InOrder(BiNode
void PostOrder(BiNode
void LeverOrder(BiNode
private:
BiNode
BiNode
void Release(BiNode
};
3.图的邻接表类定义:
const int MaxSize=12;
struct ArcNode //定义边表结点
{ int adjvex; //邻接点域
ArcNode *next; //指向下一个边结点的指针
};
template
struct VertexNode //定义顶点表结点
{ T vertex; //顶点的名称
ArcNode *firstedge; //边表的头指针
};
template
class ALGraph
{public:
ALGraph(T a[ ],int n,int e);//构造函数,初始化一个有n个顶点e条边的图
~ALGraph(); //析构函数,释放邻接表中各边表结点的存储空间
T GetVex(int i); //取图中第i个顶点数据信息
void DFSTraverse(int v); //深度优先遍历图
void BFSTraverse(int v); //广度优先遍历图
private:
VertexNode
int vertexNum, arcNum; //图的顶点数和边数
};
练习题:
一、填空题
1、______是数据的最小单位,_________是讨论数据结构时涉及的最小数据单位。
2、设一棵完全二叉树具有50个结点,则此完全二叉树有个度为2的结点。
3、在用于表示有向图的邻接矩阵中,对第i列的元素进行累加,可得到第i个顶点的______
度。
4、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该
树中有____________ 个叶子的结点。
5、有一个长度为20的有序表采用二分查找方法进行查找,共有______个元素的查找
长度为3。
6、对于双向链表,在两个结点之间插入一个新结点需要修改的指针共______个。
删除一个结点需要修改的指针共__________个。
7、已知广义表LS=(a,(b,c,d),e),它的深度是__________,长度是__________。
8、循环队列的引入是为了克服__________。
9、表达式a*(b+c)-d/f的后缀表达式是________________。
10、数据结构中评价算法的两个重要指标是。
11、设r指向单链表的最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的
三条语句是___________;r=s; r->next=null;。
12、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为a,b,c,d,e,经过
PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是_______,而栈顶指针值是_______H。设栈为顺序栈,每个元素占4个字节。
13、模式串P=‘abaabcac’的next函数值序列为________。
14、任意连通图的连通分量只有一个,即是。
15、栈的特性是。
16、串的长度是。
17、如果一个有向图中没有______,则该图的全部顶点可能排成一个拓扑序列。
18、在具有n个叶子结点的哈夫曼树中,分支结点总数为。