網(wǎng)站開發(fā)員工保密協(xié)議網(wǎng)絡(luò)營銷的成功案例分析
NowCoder | KY11 二叉樹遍歷
OJ鏈接
- 簡單來說就是構(gòu)建這個二叉樹
- 定義結(jié)構(gòu)體
- 通過遞歸方式根據(jù)輸入的字符串構(gòu)建二叉樹。對于輸入字符串中的每個字符,如果是 ‘#’ 表示空節(jié)點,否則創(chuàng)建一個新節(jié)點,并遞歸地構(gòu)建左右子樹。
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>typedef struct TreeNode {struct TreeNode* left;struct TreeNode* right;char val;
} TNode;//創(chuàng)建節(jié)點
TNode* CreateTree(char* a,int*pi) {if(a[*pi] == '#'){++(*pi);return NULL;}TNode* root = (TNode*)malloc(sizeof(TNode));root->val = a[(*pi)++];root->left = CreateTree(a,pi);root->right = CreateTree(a,pi);return root;
}//前序遍歷
void InOrder(TNode* root)
{if(root == NULL)return;InOrder(root->left);printf("%c ",root->val);InOrder(root->right);
}int main() {char str[100];scanf("%s", str);int i = 0;TNode* root = CreateTree(str,&i);InOrder(root);return 0;
}