CareerCup-4.5
来源:互联网 发布:三维软件培训机构 编辑:程序博客网 时间:2024/06/02 15:59
Write an algorithm to find the ‘next’ node (i e , in-order successor) of a given node in
a binary search tree where each node has a link to its parent
#include <iostream> using namespace std; typedef int Data; struct Node { Node(Data d):data(d){left = right = NULL;}; Data data; Node* left; Node* right; Node* parent; };struct ListNode{ ListNode(Node* n):data(n){next = NULL;}; ListNode* next; Node* data;}; class Tree { public: Tree():root(NULL){}; Node* root; void insert(Data data, Node* node = NULL) { if(root == NULL) { root = new Node(data); root->parent = NULL; return; } if(node == NULL) node = root; if(data == node->data) { return; } else if(data < node->data) { if(node->left == NULL) { node->left = new Node(data); node->left->parent = node; } else { insert(data, node->left); } } else { if(node->right == NULL) { node->right = new Node(data); node->right->parent = node; } else { insert(data, node->right); } } }; void findNext(Node* n) { if(n == NULL) return; if(n->right != NULL) { Node *p = n->right; while(p->left != NULL) p = p->left; cout<<p->data<<endl; } else { if(n->parent == NULL) return; if(n == n->parent->left) { cout<<n->parent->data<<endl; } else { Node* p = n; while(p->parent != NULL && p == p->parent->right) { p = p->parent; } if(p->parent != NULL) cout<<p->parent->data<<endl; } } };}; int main() { Tree tree; tree.insert(5); tree.insert(1); tree.insert(7); tree.insert(4); tree.insert(3); Node *n = tree.root->left->right; cout<<n->data<<endl; tree.findNext(n); system("pause"); };
- CareerCup-4.5
- CareerCup 4.5
- CareerCup 1.3
- CareerCup 1.4
- CareerCup 5.7
- CareerCup 14.6
- CareerCup 1.1
- CareerCup 1.2
- CareerCup 1.3
- CareerCup 1.4
- CareerCup 1.5
- CareerCup 1.6
- CareerCup 1.7
- CareerCup 1.8
- CareerCup 2.1
- CareerCup 2.2
- CareerCup 2.3
- CareerCup 2.4
- java解析xml的几种方式
- 第8章 通用程序设计
- Java基础复习:接口
- Windows下的Memcache安装
- zoj1709-Oil Deposits
- CareerCup-4.5
- 《c和指针》笔记--包含位域结构体的内存对齐(32bit,GCC)
- Android数据存储之SharedPreferences
- 探索WebKit内核(三)------ WebSocket
- linux in the virtual machine share folders with Windows
- 多个缓存复制的问题
- jquery实现漂浮在网页右侧的qq在线客服插件
- C++编程思想----第9章、内联函数
- 为什么用Spring来管理Hibernate?