《数据结构之树篇》--二叉树的数组实现
来源:互联网 发布:java基础学完学什么 编辑:程序博客网 时间:2024/06/15 17:45
--头文件:
#pragma once#ifndef TREE_H_#define TREE_H_#include<iostream>using namespace std;class Tree{public:Tree(int size,int *pRoot);~Tree();int *SearchNode(int nodeIndex);bool AddNode(int nodeIndex, int direction, int *pNode);bool DeleteNode(int nodeIndex, int* pNode);void TreeTraverse();private:int *m_pTree;int m_iSize;};#endif // !TREE_H_
--CPP文件
#include "Tree.h"Tree::Tree(int size,int *pRoot){m_iSize = size;m_pTree = new int[m_iSize];for (int i = 0; i < m_iSize; i++){m_pTree[i] = 0;}m_pTree[0] = *pRoot;}Tree::~Tree(){delete[] m_pTree;m_pTree = NULL;}int * Tree::SearchNode(int nodeIndex){if (nodeIndex < 0 || nodeIndex >= m_iSize){return NULL;}if (m_pTree[nodeIndex] == 0){return NULL;}return &m_pTree[nodeIndex];}bool Tree::AddNode(int nodeIndex, int direction, int * pNode){//判断是否越界if (nodeIndex < 0 || nodeIndex >= m_iSize){return false;}if (m_pTree[nodeIndex] == 0){return false;}//判断往左插入或往右插入if (direction == 0){if (nodeIndex * 2 + 1 >= m_iSize){return false;}if (m_pTree[nodeIndex * 2 + 1] != 0){return false;}m_pTree[nodeIndex * 2 + 1] = *pNode;}if (direction == 1){if (nodeIndex * 2 + 2 >= m_iSize){return false;}if (m_pTree[nodeIndex * 2 + 2] != 0){return false;}m_pTree[nodeIndex * 2 + 2] = *pNode;}return true;}bool Tree::DeleteNode(int nodeIndex, int * pNode){if (nodeIndex < 0 || nodeIndex >= m_iSize){return false;}if (m_pTree[nodeIndex] == 0){return false;}*pNode = m_pTree[nodeIndex];m_pTree[nodeIndex] = 0;return true;}void Tree::TreeTraverse(){for (int i = 0; i < m_iSize; i++){cout << m_pTree[i] << endl;}}
0 0
- 《数据结构之树篇》--二叉树的数组实现
- 数据结构之二叉树 使用数组实现
- 数据结构之二叉树(数组)
- 简单数据结构的实现之二叉树
- 【数据结构】之二叉树的java实现
- 【数据结构】之二叉树的java实现
- 数据结构之二叉树的Java实现
- 【数据结构】之二叉树的java实现
- 【数据结构】之二叉树的java实现
- 【数据结构】之二叉树的java实现
- 【数据结构】之二叉树的java实现
- Java数据结构之二叉树的实现
- 数据结构之二叉树的Java实现
- 数据结构之二叉树的递归实现
- 数据结构之二叉树的实现
- 【数据结构】之二叉树的java实现
- 数据结构 --- Java之二叉树的实现
- 【数据结构】之二叉树的java实现
- Java解析XML文件
- 无穷小与无穷大
- Linux文件操作
- 使用Fiddler抓取在夜神模拟器安装的软件的包
- 在Mac OS X 10.11 EI Capitan 中提取iso镜像
- 《数据结构之树篇》--二叉树的数组实现
- ASP.NET使用百度编辑器(UEditor)方法
- 手推BP
- 贪吃蛇小游戏—小白的进阶之路的开始
- java学习--try catch finally
- React Native之对Json类型的数据添加和修改处理
- 第三十七将项目二 乘法口诀表
- **WebView加载网页不显示图片解决办法**
- 雪城大学信息安全讲义 七、格式化字符串漏洞