云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构实验程序参考

数据结构实验程序参考

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 16:45:19

printf(\ break; case 0:break;

default:printf(\

} }while(c!=0); }

4.二叉树基本操作

#include \#define MAX 20 typedef struct btnode { char data;

struct btnode *lchild, *rchild; } Bitnode,*Bitree;

Bitnode* CreatBitree_pre()/*先序建立二叉树*/ { Bitnode *t; char ch; ch=getchar(); if (ch==' ') t=NULL;

else { t=(Bitnode*)malloc(sizeof(Bitnode)); t->data=ch;

t->lchild=CreatBitree_pre();

t->rchild=CreatBitree_pre(); } return t; }

Bitnode *CreatBitree_level()/*按层次顺序建立二叉树*/ /*此算法可修改得更完善些*/

{ Bitnode *Q[100];

int front=1,rear=0; /*队列指针如此设定,便于操作*/ char ch;

Bitnode *root=NULL,*s;

while((ch=getchar())!='#') /* '#'为输入结束标志*/ { if(ch==' ') s=NULL; /* 输入空格为虚结点*/ else

{ s=(Bitnode *)malloc(sizeof(Bitnode));/*建立新结点*/ s->data=ch; s->lchild=NULL; s->rchild=NULL; }

Q[++rear]=s; /*虚结点指针NULL或新结点地址入队*/ if(rear==1) root=s; /*第一个结点为根结点*/ else

{ if(s&&Q[front]) /* 孩子和双亲结点都不是虚结点*/ if(rear%2==0)

Q[front]->lchild=s;/* 新结点为左孩子*/ else Q[front]->rchild=s;/*新结点为右孩子*/

if(rear%2==1) front++; /*左右孩子都已处理结点出队*/ }

}

return root; }

preorder(Bitnode *t) { if(t)

{ printf(\ preorder(t->lchild); preorder(t->rchild); } }

inorder(Bitnode *t) { if (t)

{ inorder(t->lchild); printf(\ inorder(t->rchild); } }

inorder2(Bitnode *t) /*中序遍历非递归算法*/ { Bitnode *p, *stack[MAX]; int top=-1; p=t; do { while(p)

{ stack[++top]=p; p=p->lchild;} if(top>=0)

{ p=stack[top--]; printf(\ p=p->rchild; }

}while( p||(top>=0)); }

postorder(Bitnode *t) { if(t)

{ postorder(t->lchild); postorder(t->rchild); printf(\ } }

void leveltraversing(Bitnode *t) /*按层次遍历*/ { Bitnode *Q[100], *p ;

int front=-1,rear=-1; /*辅设一个简易队列*/ p=t;

if(p) printf(\访问根结点并将其指针入队列*/ while( front!=rear)

{ p=Q[++front]; /*出队*/ if(p->lchild)

{ printf(\ /*访问左孩子并将其指针入队*/ Q[++rear]=p->lchild; } if(p->rchild)

搜索更多关于: 数据结构实验程序参考 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

printf(\ break; case 0:break; default:printf(\ } }while(c!=0); } 4.二叉树基本操作 #include \#define MAX 20 typedef struct btnode { char data; struct btnode *lchild, *rchild; } Bitnode,*Bitree; Bitnode* CreatBitree_pre()/*先序建立二叉树*/ { Bitnode *t; char ch; ch=getchar(); if (ch==' ') t=NU

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com