求一个C++的家谱二叉树 C++二叉树家谱算法:的帮我写一个算法能适应这个程序

\u6c42\u7528C++\u8868\u793a\u4e8c\u53c9\u6811 \u5bb6\u8c31

//\u662f\u627e\u6240\u6709\u7684\u5b50\u5b59\u5417\uff1f\u8fd8\u662f\u6240\u6709\u513f\u5b50
//\u8fd9\u91cc\u5199\u4e2a\u6240\u6709\u5b50\u5b59\u7684\u5427\uff0c\u6240\u6709\u513f\u5b50\u66f4\u5bb9\u6613
void findChild( TreeNode *root, char *name, bool flag )
{
if( !root )
{
return ;
}
else if( !lstrcmp( root->name, name ) ) //\u627e\u5230\u67d0\u4e2a\u4eba
{
flag = true;
}

if( flag )
{
coutname<<",";
}

findChild( root->leftChild, name, flag );
findChild( root->rightChild, name, flag );
}

void findParent( TreeNode *root, char *name, bool flag )
{
if( !root )
{
return false;
}

if( !lstrcmp( root->name, name ) )
{
flag = true;
}

if( flag )
{
findParent( root->parent, name, tag );
coutname<<",";
}
else
{
findParent( root->leftChild, name, tag );
findParent( root->rightChild, name, tag );
}

}

\u592a\u4e13\u4e1a\uff0c\u4f69\u670d\u4f69\u670d

#include#includeinti=0;typedefstructtreeNODE{chardata;structtreeNODE*lchild,*rchild,*parent;}treenode,*tree;///////////////////////////////////////////////////////////////////////////////////////二叉树的建立treecreat(treeroot){charch;ch=getchar();if(ch=='#')root=NULL;else{root=(treenode*)malloc(sizeof(treenode));root->data=ch;root->lchild=creat(root->lchild);root->rchild=creat(root->rchild);}returnroot;}//////////////////////////////////////////////////////////////////////////////////////中序遍历voidtraverse(treeroot){if(root){traverse(root->lchild);printf("%c",root->data);traverse(root->rchild);}}//////////////////////////////////////////////////////////////////////////////////////先序遍历voidtraverse1(treeroot){if(root){printf("%c",root->data);traverse(root->lchild);traverse(root->rchild);}}/////////////////////////////////////////////////////////////////////////////////////后序遍历voidtraverse2(treeroot){if(root){traverse(root->lchild);traverse(root->rchild);printf("%c",root->data);}}/////////////////////////////////////////////////////////////////////////////////////////计算叶子数intleaf(treeroot){intnum1=0,num2=0;if(root==NULL)return0;if(root->lchild==NULL&&root->rchild==NULL)return1;else{num1++;leaf(root->lchild);num2++;leaf(root->rchild);returnnum1+num2;}}///////////////////////////////////////////////////////////////////////////////////////结点数intnode(treeroot){intnum1,num2;if(!root)return0;if(root->lchild==NULL&&root->rchild==NULL)return1;else{num1=node(root->lchild);num2=node(root->rchild);}returnnum1+num2+1;}////////////////////////////////////////////////////////////////////////////////////////复制二叉树treecopy(treeroot){treeroot1;//root1=(treenode*)malloc(sizeof(treenode));if(!root)returnNULL;{root1=(treenode*)malloc(sizeof(treenode));root1->data=root->data;root->lchild=root1->lchild=copy(root->lchild);root->rchild=root1->rchild=copy(root->rchild);returnroot1;}}////////////////////////////////////////////////////////左右子树交换voidchage(treep){treet;if(p==NULL)return;else{chage(p->lchild);chage(p->rchild);t=p->lchild;p->lchild=p->rchild;p->rchild=t;}}///////////////////////////voidmain(){treet=NULL,node1;printf("输入树的数据\n");t=creat(t);printf("中序遍历\n");traverse(t);printf("\n");printf("先序遍历\n");traverse1(t);printf("\n");printf("后序遍历\n");traverse2(t);printf("\n");printf("叶子数%d\n",leaf(t));printf("节点数%d\n",node(t));node1=copy(t);traverse(node1);printf("\n");chage(t);traverse(t);}

  • 姹備竴涓狢++鐨勫璋变簩鍙夋爲
    绛旓細*rchild,*parent;}treenode,*tree;///浜屽弶鏍鐨勫缓绔媡reecreat(treeroot){charch;ch=getchar();if(ch=='#')root=NULL;else{root=(treenode*)malloc(sizeof(treenode));root->data=ch;root->lchild=creat(root->lchild);root->rchild=creat(root->rchild...
  • 鐢浜屽弶鏍瀹炵幇瀹惰氨杩愮畻
    绛旓細void CreateBiTreePreOrder(PNode &pn, PNode pback, unsigned short depth);//寤虹珛浜屽弶瀹惰氨鏍,浠ュ厛搴忔柟寮 void VisitBiTreePreOrder(PNode root); //鍓嶅簭閬嶅巻姝浜屽弶鏍 void TellRelation(PNode root); //鍒ゆ柇涓や汉鍏崇郴 void DestroyBiTreePostOrder(PNode root); //閿姣佷簩鍙夋爲,閲婃斁鑺傜偣鍗犵敤鐨勭┖闂 void Fin...
  • 棰樼洰:鐢浜屽弶鏍瀹炵幇瀹惰氨鐨勭浉鍏宠繍绠
    绛旓細锛1锛夋枃浠舵搷浣滃姛鑳斤細璁板綍杈撳叆銆佽褰曡緭鍑猴紝娓呴櫎鍏ㄩ儴鏂囦欢璁板綍鍜屽皢瀹惰氨璁板綍瀛樼洏銆傦紙2锛夊璋辨搷浣滃姛鑳斤細鐢ㄦ嫭鍙疯〃绀烘硶杈撳嚭瀹惰氨浜屽弶鏍锛屾煡鎵炬煇浜烘墍鏈夌殑鍎垮瓙锛屾煡鎵炬煇浜烘墍鏈夌殑绁栧厛銆*/ include<iostream.h> include<stdlib.h> include<stdio.h> include<string.h> typedef struct Node { int degree;//浜哄憳鎵鍦ㄤ唬...
  • java浜屽弶鏍戝璋瀹炵幇
    绛旓細public static String[][] school2= { { "鍒濅腑涓骞寸骇", "鍒濅腑浜屽勾绾", "鍒濅腑涓夊勾绾"}, {"楂樹腑涓骞寸骇", "楂樹腑浜屽勾绾","楂樹腑涓夊勾绾"}, {"澶у涓骞寸骇", "澶у浜屽勾绾", "澶у涓夊勾绾", "澶у鍥涘勾绾"} };public static String[][] color2 = { { "缁胯壊", "鐧借壊", "绾㈣壊"}, {"瓒...
  • C璇█璇剧▼璁捐
    绛旓細ch=(ch-'A'+26-key%26)%26+'A'; /* 瀛楁瘝鍚戝悗绉26-key%26涓綅缃紝瓒呰繃瀛楁瘝Z鍒欏啀浠嶢寮濮嬪悜鍚庣Щ鍔 */ } return ch;} void menu()/*鑿滃崟锛1.鍔犲瘑锛2.瑙e瘑锛3.鏄剧ず鏂囨湰鏂囦欢鍐呭*/ { clrscr();printf("\n===");printf("\n1.Encrypt the text file"); /* 鍔犲瘑鏂囦欢 */ printf...
  • 瀹惰氨绠$悊
    绛旓細void InputBTNode(BTNode **b,char *str);//1.璁板綍杈撳叆 void OutputBTNode(BTNode **b,char *str);//2.璁板綍杈撳嚭 void Store(BTNode *b,char *str);//3.瀹惰氨璁板綍瀛樼洏 void DispTree(BTNode *b);//4.鐢ㄦ嫭鍙锋硶杈撳嚭瀹惰氨 void SearchXSon(BTNode *b,char X);//5.鏌ユ壘鏌愪汉鐨勫効瀛 void ...
  • 扩展阅读:扫一扫题目出答案 ... c++创建二叉树 ... 真正的降龙木是啥树 ... 扫题出答案在线 ... 免费扫一扫找答案 ... 二叉树的遍历流程图 ... 答题神器一扫就出答案 ... c++二叉树 ... 免费拍照答题一秒出答案 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网