数据结构课程设计(5)

2019-05-18 21:29

{

Matrix m , n ; Matrix * mm = &m ; Matrix * nn = &n ; In_Mat( mm ) ; Tra_Mat(mm , nn) ;

printf(\转置前矩阵非零元素:\\n\) ; Out_Mat(m) ;

printf(\转置后矩阵非零元素:\\n\) ; Out_Mat(n) ; system(\); return 0;

13、}

树和二叉树

以下问题要求统一在一个大程序里解决。

14、按先序遍历的扩展序列建立二叉树的存储结构 15、二叉树先序、中序、后序遍历的递归算法 16、二叉树中序遍历的非递归算法 17、二叉树层次遍历的非递归算法 18、求二叉树的深度(后序遍历)

#include \ #include \ #include \

typedef struct BiTr { struct {

void CrBiTr(BT & b) {

int a ;

b = (BT)malloc(sizeof(BiTr)) ;

printf(\请输入该结点的值,值为零表示删除该结点:\\n\) ; scanf_s(\,&a) ; BT q[100] ; int h , r ; int data ;

struct BiTr * lc , * rc ;

}BiTr , * BT ;

}queue ;

}

if(a == 0) { }

b->data = a ; CrBiTr(b->lc) ; CrBiTr(b->rc) ; b = NULL ; else

void visit(BT b) { }

void PreOrderTraverse(BT b) { }

void InOrderTraverse(BT b) { }

void PostOrderTraverse(BT b) { }

void InOrderTraverse1(BT b) {

BT s[500] , p ; int i = -1 ; p = b ; while(p) {

PreOrderTraverse(b->lc); PreOrderTraverse(b->rc); visit(b) ;

InOrderTraverse(b->lc); visit(b) ;

InOrderTraverse(b->rc); visit(b) ;

PreOrderTraverse(b->lc); PreOrderTraverse(b->rc); printf(\ , b->data) ;

}

}

if(p) {

i++ ; s[i] = p; p = p->lc ;

} else { }

p = s[i]; i--;

printf(\,p->data); p = p->rc ;

void CengciTraverse(BT b) { }

BT p = b ; queue.h = 0 ; queue.r = 0 ; if(b)

printf(\,p->data) ; queue.q[queue.r] = p ; queue.r++ ;

while(queue.h < queue.r) { }

p = queue.q[queue.h] ; queue.h++ ; if(p->lc) { }

if(p->rc) { }

printf(\,p->rc->data) ; queue.q[queue.r] = p->rc ; queue.r++ ;

printf(\,p->lc->data) ; queue.q[queue.r] = p->lc ; queue.r++ ;

int Depth(BT b) { }

int _tmain(int argc, _TCHAR* argv[]) {

int a = 1; BT b = NULL ;

printf(\二叉树的操作,请选择序号:\\n\) ;

printf(\按先序遍历的扩展序列建立二叉树的存储结构:\\n\) ; printf(\二叉树先序、中序、后序遍历的递归算法:\\n\) ; printf(\二叉树中序遍历的非递归算法:\\n\) ; printf(\二叉树层次遍历的非递归算法:\\n\) ; printf(\求二叉树的深度(后序遍历):\\n\) ; scanf_s(\,&a) ; while(a != 0)

{

switch(a) { case 1 :

{ } {

printf(\先序遍历如下:\\n\) ; PreOrderTraverse(b) ; printf(\中序遍历如下:\\n\) ; printf(\开始创建:\\n\) ; CrBiTr(b) ; break ;

int dep = 0 ,dep1 ,dep2 ; if (b = NULL) { }

dep1 = Depth(b->lc) ; dep2 = Depth(b->rc) ; if(dep1 > dep2)

dep = dep1 + 1 ; dep = dep2 + 1 ; else

return dep ; return 0 ; else

case 2 :

}

}

} { } { } { }

InOrderTraverse(b) ;

printf(\后序遍历如下:\\n\) ; PostOrderTraverse(b) ; break ;

case 3 :

printf(\中序遍历的非递归算法:\\n\); InOrderTraverse1(b) ; break ;

case 4 :

printf(\层次遍历的非递归算法\) ; CengciTraverse(b); break ;

case 5 :

printf(\二叉树的深度为:\\n\) ; Depth( b ) ; break ;

system(\) ; return 0;

}

19、建立树的存储结构 20、求树的深度 #include \#include \#include \

typedef struct TreeNode { int data ; struct TreeNode * chil , * bro ; }TreeNode , * Tree ;

void Create(Tree & b) { int a ; b = (Tree)malloc(sizeof(TreeNode)) ;


数据结构课程设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一汽实习报告讲解 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: