首页 > 代码库 > 数据结构——树的简单操作集合
数据结构——树的简单操作集合
非常多数据结构的书上解说数据机构时都是採用伪代码实现。事实上感觉蛮不直观的。所以对于全部的数据结构操作我都将其用C实现一遍。
树是学习二叉树的基础,也是后面理解B树。B+树的等树的基础,以下就给出树的几个简单操作,方便理解。
数据结构
//-------数据结构----------------------------------------
#define m 3 //定义度为3的树
typedef char datatype;
typedef struct node
{
datatype data;
struct node* child[m];
}treenode;
//------------------------------------------------------
基本操作
//--------操作------------------------------------------
void preorder(treenode* t)
{
int i;
if (t)
{
printf("%c",t->data);
for(i=0;i<m;i++)
{
preorder(t->child[i]);
}
}
}
void postorer(treenode* t)
{
int i;
if (t)
{
for(i =0;i<m;i++)
{
postorer(t->child[i]);
}
printf("%c",t->data);
}
}
//必须用指针的指针,假设实參是一个指针,则形參仅仅是一个实參指针的拷贝,所以实參指针的值是不会改变的。
void createtree(treenode** p)
{
//输入的时候直接输AB###C###D###回车
int i;char ch;
scanf("%c",&ch);
if (ch ==‘#‘)
{
*p = NULL;
}
else
{
*p = (treenode*)malloc(sizeof(node));
(*p)->data = http://www.mamicode.com/ch;"hljs-keyword">for (i =0;i<m;i++)
{
createtree(&((*p)->child[i]));
}
}
}
//------------------------------------------------------
对于树的操作不须要做太多,大多数都是针对二叉树的操作,所以就给出了简单的几个操作,足矣。
数据结构——树的简单操作集合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。