顺序存储和链接存储的相互转化

来源:互联网 发布:macbook air适合编程吗 编辑:程序博客网 时间:2024/06/16 22:29

顺序存储转化为链接存储:

BTreeNode *create(char* str, int pose, int size) //下标从0开始{ char ch; BTreeNode * t;char* p=str;ch = p[pose];if(ch=='#'|| pose>=size) return NULL; // 表示空结点else { t=(BTreeNode *)malloc(sizeof(BTreeNode)); //非空则构造新结点t->data=ch; //新结点数据域即为读入字符t->lchild=create(p, 2*pose+1,size); //建立左子树t->rchild=create(p, 2*pose+2,size); //建立右子树}return(t);} 


 链接存储转化为顺序存储:

 

char a[200];//顺序存储数组int flag;//判断是否是空树BiNode* Creat(BiNode *bt,int k){char ch;cin>>ch;if(ch=='#'){bt=NULL;}else{flag=1;bt=new BiNode;bt->data=ch;a[k]=ch;bt->lchild=Creat(bt->lchild,(k)*2);bt->rchild=Creat(bt->rchild,(k)*2+1);}return bt;}
初始化为Creat(root,1);
原创粉丝点击