《数据结构导论自考实践题》由会员分享,可在线阅读,更多相关《数据结构导论自考实践题(4页珍藏版)》请在金锄头文库上搜索。
1、实践题1的评分标准(10分):实现题目要求的算法(共7分)。其中 置空 (1分) 入队 (3分) 出队 (3分) 程序的总体结构、可读性、注释(2分) 算法分析 (1分)实践题一置空int EmptyQueue(CycQue CQ) If(CQ.rear=CQ.front) return 1; /队列为空,返回1Else return 0; /队列不为空,返回0入队int EnQueue(CycQue CQ,DataType x) if(CQ.rear+1)% maxsize=CQ.front) Error(“队列满”);return 0; /队列满,入队列失败else CQ.rear=(CQ
2、.rear+1)%maxsize;CQ.dataCQ.rear=x;return 1; /入队列成功出队int OutQueue(CycQue CQ) if(EmptyQueue(CQ) /判断队列是否为空error(“队列空”);return 0;/队列为空,出队列失败 else CQ.front=(CQ.front+1)%maxsize; /不为空,出队列return 1; /出队列成功实践题二实现题目要求的算法(共7分)。其中 以二叉链表作为存储结构,定义二叉树类型 bitree (1分)建立二叉链表create( ) ( 2分 ) (先序、中序、后序)遍历二叉树 ( 4分 ) 程序的总
3、体结构、可读性、注释 ( 2分 )算法分析 ( 1分 )定义并建立二叉链表typedef struct btnode DataType data; struct btnode *lchild,*rchild; /指出左右孩子的指针*bintree;遍历树先序void preorder(bintree bt) /先序遍历根指针为bt的二叉树if (bt!=NULL)visit (bt); /访问根结点btpreorder(bt-lchild); /先序遍历左子树preorder(bt-rchild); /先序遍历右子树中序void inorder(bintree bt) /中序遍历根指针为bt的
4、二叉树if (bt!=NULL) inorder(bt-lchild); /中序遍历左子树visit (bt); /访问根结点btinorder(bt-rchild); /中序遍历右子树后序void preorder(bintree bt) /后序遍历根指针为bt的二叉树if (bt!=NULL)preorder(bt-lchild); /后序遍历左子树preorder(bt-rchild); /后序遍历右子树visit (bt); /访问根结点bt践题3的评分标准(10分):实现题目要求的算法(共7分)。其中 输入 input ( 1分 ) 输出 output ( 1分 ) 冒泡排序 bubble ( 5分 ) 程序的总体结构、可读性、注释 ( 2分 )算法分析 ( 1分 )输入输出#include #define N 5using namespace std;structstuN;void intput()void output()冒泡排序算法viod BubbleSort(List R,int n)Int I,j,temp,endsort;for(i=1;i=n-1;i+)endsort=0;for(j=1;jRj+1.key) /若逆序则交换记录temp=Rj;Rj=Rj+1;Rj+1=temp;endsort=1;if(endsort=0) break;