非常多数据结构的书上解说数据机构时都是採用伪代码实现。事实上感觉蛮不直观的。所以对于全部的数据结构操作我都将其用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;ichild[i]); } }}void postorer(treenode* t){ int i; if (t) { for(i =0;i 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 = ch; for (i =0;i child[i])); } }}//------------------------------------------------------
对于树的操作不须要做太多,大多数都是针对二叉树的操作,所以就给出了简单的几个操作,足矣。