แแแปแแแแแถแ
แแแพแแแแแ แแแแถแแแแถแแถแแแแแแแแแแแแแแแพแแแพแแผแแ
แแแปแแแแแแแถแแแธแแแแแแแแแแถแแแแแพแแแแแแแแแแแแแแธแ... แแแแแถแแแแแแแแแแแแแธแ แแถแแแแแแแถแแแแพแแแพแแแแแธแ แแทแแแแแฝแแแแแแแแถแแแถแ
แแแพแแแแแ
แแถแ แแทแแ แพแ แแพแแแพแแผแแ
แแทแแแแแผแแแถแแแแแพแแ
แแแแแแแแถแแ แแแแแแถแแแแบแ แแแแธแแแแพแแแแถแแแแบแแผแ
แ
แแผแ
แแแแ แแแแปแโแแถแโแแฝแโแแแแฝแโแฏแโแแผแโแแแแฝแโแแแ แ แพแโแฅแกแผแโแแแโแแแแปแโแแนแโแแแแแแโแแธโแแแแโแแแโแแพแโแแพโแแแแผแโแแถแโแแโแแถแแแแแ แแผแ
แแแแแแถแแงแแแแแแแท แแ
แแถแแแแแแแแแแแแแถแแแผแแ
แแฝแแแแแแแแถแแปแแขแแแแแธแ
- แ แแแขแปแแแ แแผแแแแแปแแ แแแ
- แ แแแขแปแแแ แแแแแแปแ
- แแทแแแแแแแแแแขแแแแแนแแแแแแถแแปแ
struct Tnode {
int key;
struct Tnode *son;
struct Tnode *brother;
};
typedef struct Tnode Node;
แ แผแโแแแแแถแโแแแแแทแ โแแ โแ แแแปแ โแแแแผแแ
Node *tree = NULL;แแพแแแแแผแแแแแแแแแแแแถแแปแแแธแแแแแแพแแแแธแ แผแแแ แแแแปแแแแแผแ;
- + 2 (แฌ +ssbb 2) - แแถแแแแแ แผแแแ แแแแปแแแพแแแพ (แแแแแถแแแแพแแแพแแผแแ แแแแผแแแแแผแแแถแแแแแแแฑแแแแแแแแแแถแแแแแ r แแบแแถแแถแแแแแแพแแซแแแฝแ s แแบแแถแแถแแแแแถแแแแแแผแแแ แแผแแแแแปแแ แแแ แแแบแแถแแถแแแแแถแแแแแแผแแแ แแแแแแปแ);
แแแแปแแแผแแแแแแแงแแถแ แแแแแฝแแแแแขแแแแ
+r 1
+ 2
+ 3
+ 3
+s 5
+sb 6
+sb 7
แแแแแแแแนแแแถแแพแแแพแแผแ แแแแ
1
2
5
3
6
7
3
แแถแแแแผแ แ แผแแแพแแแแแแพแแแปแแแถแแแแแแแแแแ vertex แแฝแ แแแแแบ แแแแ แแแขแแแแ แแ แถแแแแแแถแแ vertex แ แพแแแแแแผแแแแแแทแ แแ แ แแแปแ แแแแผแแแแ (แแแแผแแแทแแแแแถแแแแ แขแแแธแแถแแแขแแ)แ
Node *create_tree(int v) {
Node *Tree = (Node *) malloc(sizeof(Node));
Tree->key = v;
//ะพะฑะฝัะปัะตะผ ัะบะฐะทะฐัะตะปะธ ะบ ะฑัะฐัััะผ ะธ ััะฝะพะฒััะผ, ะฝะตะทะฐะฒะธัะธะผะฐั ะฒะตััะธะฝะฐ, ะบะพัะพัะฐั ั
ัะฐะฝะธั value
Tree->son = NULL;
Tree->brother = NULL;
return Tree;
}
แขแแแแแแแแแผแแแแแแพแแแปแแแถแแแแแแแแแแแแแแแแแแขแแแแแแแแผแ (+bs...) แ แแถแแแแแแแแแแพแแ แถแแแแแแพแแแแแแแถแแแแธ root แแแแแทแแแพแแถแแทแแแแแผแแแถแแแแแแพแแแแแแแแพแแแแแ แแ NULL (แแพแแแทแแขแถแ แแแแพแขแแแธแแถแแแ) แ แแแแแทแแแพแแแแถแแ แแแปแ แแแแผแแแแแแ แแพแแแแแผแแแแแแพแแแถแ แแพแแ แผแแแ แแถแแแแปแแแถแแแแแแพแแแแแแถแ แ แพแแแแแแแแทแ แแ แซแแ
แ แแแถแแแถ Node ** แแแแแถแแแแแปแแแแแแแถแแแแ แแถแแแแแแแแ แแทแแแแแ แแแแแแถแแแ แแถแแแแแแฑแแแแพแแแผแแแแแแแแถแแแแแปแแแถแแแแแถแแแแแแผแแขแแแธแแแแแพแแแทแแขแถแ แแแแพแแถแแแถแแฝแแแนแแแถแแแแแแถแ Node *tree แ
แแถแแผแแ แแพแแแแแผแแแแแแแแแ แแแขแปแแแ แ แแแปแ แแแแผแ แแแแแพแแแแแผแแแแแแแแแผแแแแแปแแ
Node* add_node(Node **tree, const char *a) {
Node* t = *tree;
int value;
scanf("%d", &value);
int i = 0;
while (a[++i] != ' ') {
if (a[i] == 'r') {
*tree = create_tree(value); // ัะพะทะดะฐะตะผ ะบะพัะตะฝั
t = *tree;
return *tree;
}
if (a[i] == 's') {
if (t = to_son(t)) // ััะฝะบัะธั, ะบะพัะพัะฐั ะฒะพะทะฒัะฐัะฐะตั ัะบะฐะทะฐัะตะปั ะฝะฐ ััะฝะฐ
continue;
return NULL; //ะธะฝะฐัะต NULL
}
if (a[i] == 'b') {
if (t = to_brother(t)) //ะฒะพะทะฒัะฐัะฐะตั ัะบะฐะทะฐัะตะปั ะฝะฐ ะฑัะฐัะฐ t
continue;
return NULL;
}
}
if (t->son != NULL) {
t = last_son(t); // ะผั ะฟะตัะตัะปะธ ะบ ะฒะตััะธะฝะต, ะบ ะบะพัะพัะพะน ั
ะพัะตะปะธ
//ะธ ัะตะฟะตัั ะธะดะตะผ ะบ ะฟะพัะปะตะดะฝะตะผั ะตะต ััะฝั,
//ััะพะฑั ะดะพะฑะฐะฒะธัั ะฒ ะบะพะฝะตั ัะฟะธัะบะฐ
t->brother = create_tree(value);
return t->brother;
}
else {//ะตัะปะธ ััะฝะฐ ะฝะตั, ัะพ ัะพะทะดะฐะดะธะผ ะตะณะพ
t->son = create_tree(value);
return t->son;
}
}
แแแแแถแแแแแแแแแพแแแถแแแแแแพแแแพแ
PS แแแแแถแขแแแแแแแแแผแแแแแแแแแปแ แแผแ
แแแแแแผแแแปแแแทแแทแ
แแแแแแแแถแแแแแ
แแแแแ: www.habr.com
