C语言-数据结构-树
来源:互联网 发布:开淘宝零食店流程 编辑:程序博客网 时间:2024/06/04 18:05
#include <stdio.h>
#include <stdlib.h>
/*
树的遍历
1.树的前序遍历
先访问跟结点,在从左到右
2.树的后序遍历
先从左到右,在访问跟结点
3.层次遍历
左到右*/
///前序
void preoder(tree p)
{
int i;
if(p!=NULL)
{
printf("%c",p->data);
for(i=0;i<m;++i)
{
preorder(p->child[i]);
}
}
}
///后序
void postorder(tree p) ///p为指向树根节点的指针
{
int i;
if(p!=NULL) ///树不为空
{
for(i=0;i<m;++i) ///依次递归实现各字数的后序遍历
{
postorder(p->child[i]);
printf("%c",p->data); ///输出跟节点的值
}
}
}
///按前序遍历顺序建立一颗3度树
void createtree(tree *p)
{
int i;
char ch;
if((ch==getchar())==' ')
*p=NULL; ///建立一颗空树
else
{
*p=(tree)malloc(sizeof(node)); ///产生树的根节点
(*p)->data=ch;
for(i=0;i<m;++i) ///按前序遍历顺序依次递归产生树的每一颗子树
createtree(&(*p)->child[i]);
}
}
///树的层次遍历算法
void levelorder(tree t)
{
tree queue[20]; ///存放等待访问的结点队列
int f=0,r=1,i; ///f,r分别为对头,对尾指针
tree p;
queue[0]=t;
while(f<r) ///队列不为空
{
p=queue[f];
f++;
printf("%c",p->data); ///访问队头元素
for(i=0;i<m;i++) ///将刚被访问的元素的所有子女结点依次进队
{
if(p->child[i])
{
queue[r]=p->child[i];
++r;
}
}
}
}
int main()
{
printf("Hello world!\n");
return 0;
}
#include <stdlib.h>
/*
树的遍历
1.树的前序遍历
先访问跟结点,在从左到右
2.树的后序遍历
先从左到右,在访问跟结点
3.层次遍历
左到右*/
///前序
void preoder(tree p)
{
int i;
if(p!=NULL)
{
printf("%c",p->data);
for(i=0;i<m;++i)
{
preorder(p->child[i]);
}
}
}
///后序
void postorder(tree p) ///p为指向树根节点的指针
{
int i;
if(p!=NULL) ///树不为空
{
for(i=0;i<m;++i) ///依次递归实现各字数的后序遍历
{
postorder(p->child[i]);
printf("%c",p->data); ///输出跟节点的值
}
}
}
///按前序遍历顺序建立一颗3度树
void createtree(tree *p)
{
int i;
char ch;
if((ch==getchar())==' ')
*p=NULL; ///建立一颗空树
else
{
*p=(tree)malloc(sizeof(node)); ///产生树的根节点
(*p)->data=ch;
for(i=0;i<m;++i) ///按前序遍历顺序依次递归产生树的每一颗子树
createtree(&(*p)->child[i]);
}
}
///树的层次遍历算法
void levelorder(tree t)
{
tree queue[20]; ///存放等待访问的结点队列
int f=0,r=1,i; ///f,r分别为对头,对尾指针
tree p;
queue[0]=t;
while(f<r) ///队列不为空
{
p=queue[f];
f++;
printf("%c",p->data); ///访问队头元素
for(i=0;i<m;i++) ///将刚被访问的元素的所有子女结点依次进队
{
if(p->child[i])
{
queue[r]=p->child[i];
++r;
}
}
}
}
int main()
{
printf("Hello world!\n");
return 0;
}
阅读全文
0 0
- C语言数据结构-树
- C语言-数据结构-树
- 复习(数据结构):树:C语言
- C语言-数据结构-二叉树
- 二叉树排序 --C语言数据结构
- C语言数据结构之二叉树
- (C语言)二叉树实现(数据结构十三)
- [数据结构]C语言二叉树的实现
- 数据结构-------------线索二叉树(c语言)
- 数据结构C语言二叉树的遍历
- c语言实现二叉树数据结构
- C语言二叉树的数据结构实现
- (C语言-数据结构)还原二叉树-改进
- 数据结构_6:树:C语言_基本概念
- 数据结构:二叉查找树(C语言实现)
- C语言数据结构——二叉树
- 数据结构 C语言 链式二叉树
- C语言数据结构之普通树篇
- windows窗口消息
- 用sqoop将oracle数据导入Hbase 使用笔记
- 基于UDP的服务器和客户端之间的通信
- 离散题目9
- centos6.5安装ELK
- C语言-数据结构-树
- Learning Spark——client mode和cluster mode的区别
- node.js 搭建简单服务
- 记录一特殊现象——C++继承关系下的this指针值
- bzoj 1017: [JSOI2008]魔兽地图DotR (树形DP+多重背包)
- mysql的认识
- 面向对象与面向过程
- 离散题目10
- 关于参数过滤条件