#include#include struct node{ struct node *right; struct node *left; struct node *parent; int key; }; typedef struct node * Node; #define NIL NULL Node root; Node treeMinimum(Node x){ } Node treeMaximum(Node x){ } Node treeSearch(Node u, int k){ } Node treeSuccessor(Node x){ } void treeDelete(Node z){ Node y; // node to be deleted Node x; // child of y } void insert(int k){ Node y = NIL; Node x = root; Node z; z = malloc(sizeof(struct node)); z->key = k; z->left = NIL; z->right = NIL; } void inorder(Node u){ } void preorder(Node u){ } int main(){ int n, i, x; char com[20]; scanf("%d", &n); for ( i = 0; i < n; i++ ){ scanf("%s", com); if ( com[0] == 'f' ){ scanf("%d", &x); Node t = treeSearch(root, x); if ( t != NIL ) printf("yes\n"); else printf("no\n"); } else if ( com[0] == 'i' ){ scanf("%d", &x); insert(x); } else if ( com[0] == 'p' ){ inorder(root); printf("\n"); preorder(root); printf("\n"); } else if ( com[0] == 'd' ){ scanf("%d", &x); treeDelete(treeSearch(root, x)); } } return 0; }
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造 (マイナビ)AIZU ONLINE JUDGE のコース問題を題材にした解説書です。初級者が体系的にアルゴリズムとデータ構造の基礎を学ぶことができる入門書となっています。 |