为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

二叉树操作

2017-11-10 7页 doc 20KB 7阅读

用户头像

is_842972

暂无简介

举报
二叉树操作二叉树操作 #include"stdio.h" #include"malloc.h" typedef char datatype; typedef char elemtype; typedef struct BiTNode { datatype data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; BiTree Initiate() { BiTree bt; //?õÊ???Á?Ò??Ã?øÍ??ÚµãµÄ?þ?æÊ? if((bt=(BiTN...
二叉树操作
二叉树操作 #include"stdio.h" #include"malloc.h" typedef char datatype; typedef char elemtype; typedef struct BiTNode { datatype data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; BiTree Initiate() { BiTree bt; //?õÊ???Á?Ò??Ã?øÍ??ÚµãµÄ?þ?æÊ? if((bt=(BiTNode *)malloc(sizeof(BiTNode)))==NULL) return 0; //bt->data='A'; bt->lchild=NULL; bt->rchild=NULL; return bt; } BiTree Create(elemtype x,BiTree lbt,BiTree rbt) { //Éú?ÉÒ??ÃÒÔxΪ?ù?ÚµãµÄÊý?ÝÓòÖµÒÔlbtºÍrbtΪ×óÓÒ×ÓÊ?µÄ?þ?æÊ? BiTree p; if((p=(BiTNode *)malloc(sizeof(BiTNode)))==NULL) return NULL; p->data=x; p->lchild=lbt; p->rchild=rbt; return p; } BiTree InsertL(BiTree bt,elemtype x,BiTree parent) { //ÔÚ?þ?æÊ?btÖеÄparentËùÖ??ÚµãºÍÆä×ó×ÓÊ?Ö??ä?åÈëÊý?ÝÔªËØΪxµÄ?Úµã BiTree p; if(parent==NULL) { printf("\n?åÈë?ö?í"); return NULL; } if((p=(BiTNode *)malloc(sizeof(BiTNode)))==NULL) return NULL; p->data=x; p->lchild=NULL; p->rchild=NULL; if(parent->lchild==NULL) parent->lchild=p; else { p->lchild=parent->lchild; parent->lchild=p; } return bt; } BiTree InsertR(BiTree bt,elemtype x,BiTree parent) { //ÔÚ?þ?æÊ?btÖеÄparentËùÖ??ÚµãºÍÆäÓÒ×ÓÊ?Ö??ä?åÈëÊý?ÝÔªËØΪxµÄ?Úµã BiTree p; if(parent==NULL) { printf("\n?åÈë?ö?í"); return NULL; } if((p=(BiTNode *)malloc(sizeof(BiTNode)))==NULL) return NULL; p->data=x; p->lchild=NULL; p->rchild=NULL; if(parent->rchild==NULL) parent->rchild=p; else { p->rchild=parent->rchild; parent->rchild=p; } return bt; } BiTree DeleteL(BiTree bt,BiTree parent) { //ÔÚ?þ?æÊ?btÖÐÉ??ý?áµãparentµÄ×ó×ÓÊ? BiTree p; if(parent==NULL||parent->lchild==NULL) { printf("\nÉ??ý?ö?í"); return NULL; } p=parent->lchild; parent->lchild=NULL; free(p);//µ?pΪ?ÇÒ?×Ó?áµãÊ???ÕâÑùÉ??ý?öÊÍ?ÅÁËËùÉ??ý×ÓÊ??ùµÄ?áµãµÄ? Õ?ä //ÈôÒªÉ??ý×ÓÊ??ÖÖ?µÄ?Úµã??ÐèÒªºóÃæ?éÉܵÄ?éÀú?Ù×?À?ʵÏÖ?? return bt; } BiTree DeleteR(BiTree bt,BiTree parent) { //ÔÚ?þ?æÊ?btÖÐÉ??ý?áµãparentµÄÓÒ×ÓÊ? BiTree p; if(parent==NULL||parent->rchild==NULL) { printf("\nÉ??ý?ö?í"); return NULL; } p=parent->rchild; parent->rchild=NULL; free(p); return bt; } void PreOrder(BiTree bt) { //ÏÈÐò?éÀú?þ?æÊ?bt if(bt==NULL)return; if(bt->data) printf("%c ",bt->data); //Visit(bt->data); PreOrder(bt->lchild); PreOrder(bt->rchild ); } void InOrder(BiTree bt) { //ÖÐÐò?éÀú?þ?æÊ?bt if(bt==NULL)return; InOrder(bt->lchild); printf("%c ",bt->data); InOrder(bt->rchild); } void PostOrder(BiTree bt) { //ºóÐò?éÀú?þ?æÊ?bt if(bt==NULL)return; PostOrder(bt->lchild); PostOrder(bt->rchild); printf("%c ",bt->data); } void main() { BiTree bt,x; printf(" A \n" " / \\ \n" " B C \n" " / \\ / \\ \n" " D E F G \n" " / \\ / \n" " H I J \n"); bt=Create('A',NULL,NULL); x=InsertL(bt,'B',bt); x=InsertL(bt,'D',bt->lchild); x=InsertR(bt,'E',bt->lchild); x=InsertL(bt,'H',(bt->lchild)->lchild); x=InsertL(bt,'I',(bt->lchild)->lchild); x=InsertL(bt,'J',(bt->lchild)->rchild); x=InsertR(bt,'C',bt); x=InsertL(bt,'F',bt->rchild); x=InsertR(bt,'D',bt->rchild); PreOrder(x);printf("\n"); InOrder(x);printf("\n"); PostOrder(bt);printf("\n"); }
/
本文档为【二叉树操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索