在二叉树中找值为x的结点(假设所有结点的值都不一样)
来源:互联网 发布:浏览记录监控软件 编辑:程序博客网 时间:2024/04/20 00:09
#include<iostream>#include<stack>#define N 7using namespace std;typedef struct node{struct node *leftChild;struct node *rightChild;int data;}BiTreeNode, *BiTree;// 生成一个结点BiTreeNode *createNode(int i){BiTreeNode * q = new BiTreeNode;q->leftChild = NULL;q->rightChild = NULL;q->data = i;return q;}BiTree createBiTree(){BiTreeNode *p[N];int i;for(i = 0; i < N; i++)p[i] = createNode(i + 1);// 把结点连接成树for(i = 0; i < N/2; i++){p[i]->leftChild = p[i * 2 + 1];p[i]->rightChild = p[i * 2 + 2];}return p[0];}BiTreeNode *findElement(BiTree T, int element){if(NULL == T)return NULL;if(element == T->data)return T;BiTreeNode *p = findElement(T->leftChild, element);if(NULL != p)return p;return findElement(T->rightChild, element);}int main(){BiTree T = createBiTree();BiTreeNode *p; p = findElement(T, 0);cout << p << endl; cout << "************" << endl; p = findElement(T, 8);cout << p << endl; cout << "************" << endl; p = findElement(T, 1);cout << p->data << endl;cout << p->leftChild->data << endl;cout << p->rightChild->data << endl;cout << "************" << endl; p = findElement(T, 2);cout << p->data << endl;cout << p->leftChild->data << endl;cout << p->rightChild->data << endl;cout << "************" << endl; p = findElement(T, 3);cout << p->data << endl;cout << p->leftChild->data << endl;cout << p->rightChild->data << endl;cout << "************" << endl; p = findElement(T, 4);cout << p->data << endl;cout << p->leftChild << endl;cout << p->rightChild << endl;cout << "************" << endl; p = findElement(T, 5);cout << p->data << endl;cout << p->leftChild << endl;cout << p->rightChild << endl;cout << "************" << endl; p = findElement(T, 6);cout << p->data << endl;cout << p->leftChild << endl;cout << p->rightChild << endl;cout << "************" << endl; p = findElement(T, 7);cout << p->data << endl;cout << p->leftChild << endl;cout << p->rightChild << endl;cout << "************" << endl; return 0;}
0 0
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- 二叉树中查找值为x的结点,打印x结点的全部祖先
- 2.2删除带头结点的L中所有值为x的结点
- 设计一个递归算法,删除不带头结点的单链表中所有值为x的结点
- 头插法,尾插法,创建单链表,然后删除所有结点值为x的结点
- 在二叉树t中查找值为x的结点
- 【Java】以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于等于x的结点之前
- 项目一--删除结点值为X的结点
- 删除二叉树中的度数为1的所有结点
- 求二叉树中值为x的结点的个数
- 值x将链表划分为两部分,小于x的结点排在大于或等于x 的结点之前
- 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点
- 打印二叉树根结点到所有叶子结点的路径
- 求二叉树中结点值的和为指定整数的所有路径
- 打印出二叉树中结点值的和为输入整数的所有路径
- 求二叉树中以x为值的根结点的子树的深度
- 每周数据结构【1】:不带头结点删除所有值为x的节点
- redis学习笔记。
- OSPF广播多路访问配置
- 615 最近点对【排序】
- R概率分布函数使用小结
- CF574A优先队列是一个数加上另外一些数,使这个数在这些数中最大
- 在二叉树中找值为x的结点(假设所有结点的值都不一样)
- 定义和初始化vector对象
- SQL server 2012序列号 注册码
- undefined reference to 'vtable for XXX class'
- 0011 难以取悦的姑娘
- web.xml 配置中classpath: 与classpath*:的区别
- Reverse Integer
- 求二叉树的高度
- 在青岛穷游打的cf codeforces Round #318 (Div. 2) A.Bear and Elections