主题:求助数据结构-C语言描述
这个课程学得头都大了还是不明白,不象C语言那么好学,现在有几题计算体和编程题,和考试内容差不多,希望会的朋友帮忙做一下,小弟感激不竟。
计算题
1.下面这棵树,请计算出它的根结点数,分支结点数,叶子结点数和树的高度。
(根据点数1分支结点数2叶子结点数6高度3)
2.设给定的顺序表A=(10,20,30,40,50,60,70,80,90,100。)采用折半查找算法查找
元素20,需经多少次比较才能找到,在等概率情况下查找成功的平均查找长度为多少?(3次)
3.设给定权值W={2,3,4,7,8,9}.试构造关于W的一棵HUFFMAN树。请计算其加权路径长度WPL等于
多少?(WPL=∑PL=2*4+3*4+4*3+7*2+8*2+9*1=71)
4.已知序列{46,55,13,42,94,5,17,30},请写出采用快速排序法做升序排序
计算出排几次才能完成。(经3次排序才能完成)
5.计算下面的有向图顶点 的度的最大度数是多少?每个顶点的入度是多少?
出度又是多少?
1 5 顶点 1 2 3 4 5 6
6 入度 3 2 1 1 2
2 4
2
3 (有向图的度是5度 出度0 1 2 3 1 3)
编程题
1.设计一个算法将单链表数据域所有等于K的结点删除,并统计这样的结点的个数。
已知单链表的结点数据类型定义如下:
struct node
{
int data;
struct node *next;
}
2.设计一个算法统计二叉树中只有左孩子无右孩子的结点个数。
已知二叉树结点的数据类型定义如下:
struct TreeNode{
char data;
struct TreeNode *lchild;
struct TreeNode *rchild;
}
3.设计一个算法,学生考试的成绩一般用百分制记录,为了简便而采用五级制的算法。既采用
优秀,良好,中等,及格,不及格五级。请你利用哈夫曼树的最佳判定算法,用C语言描述,
编出改问题的程序来。
编程要求:
1.定义哈夫曼树的类型。
2.构造哈夫曼树的算法。
3.利用C语言的IF语句描述。
4.请写出一个简单算法完成栈的基本操作进PUSH()。
已知栈的数据类型定义如下:
# define N 100
struct stack{
char date[N];
int toop;
int bottom;
}
5.已知单链表的结点数据类型定义如下:
struct node
{
int data;
struct node *next;
}
请写出将S插入到P,Q之间的语句序列来。
计算题
1.下面这棵树,请计算出它的根结点数,分支结点数,叶子结点数和树的高度。
(根据点数1分支结点数2叶子结点数6高度3)
2.设给定的顺序表A=(10,20,30,40,50,60,70,80,90,100。)采用折半查找算法查找
元素20,需经多少次比较才能找到,在等概率情况下查找成功的平均查找长度为多少?(3次)
3.设给定权值W={2,3,4,7,8,9}.试构造关于W的一棵HUFFMAN树。请计算其加权路径长度WPL等于
多少?(WPL=∑PL=2*4+3*4+4*3+7*2+8*2+9*1=71)
4.已知序列{46,55,13,42,94,5,17,30},请写出采用快速排序法做升序排序
计算出排几次才能完成。(经3次排序才能完成)
5.计算下面的有向图顶点 的度的最大度数是多少?每个顶点的入度是多少?
出度又是多少?
1 5 顶点 1 2 3 4 5 6
6 入度 3 2 1 1 2
2 4
2
3 (有向图的度是5度 出度0 1 2 3 1 3)
编程题
1.设计一个算法将单链表数据域所有等于K的结点删除,并统计这样的结点的个数。
已知单链表的结点数据类型定义如下:
struct node
{
int data;
struct node *next;
}
2.设计一个算法统计二叉树中只有左孩子无右孩子的结点个数。
已知二叉树结点的数据类型定义如下:
struct TreeNode{
char data;
struct TreeNode *lchild;
struct TreeNode *rchild;
}
3.设计一个算法,学生考试的成绩一般用百分制记录,为了简便而采用五级制的算法。既采用
优秀,良好,中等,及格,不及格五级。请你利用哈夫曼树的最佳判定算法,用C语言描述,
编出改问题的程序来。
编程要求:
1.定义哈夫曼树的类型。
2.构造哈夫曼树的算法。
3.利用C语言的IF语句描述。
4.请写出一个简单算法完成栈的基本操作进PUSH()。
已知栈的数据类型定义如下:
# define N 100
struct stack{
char date[N];
int toop;
int bottom;
}
5.已知单链表的结点数据类型定义如下:
struct node
{
int data;
struct node *next;
}
请写出将S插入到P,Q之间的语句序列来。