課程
/后端開發(fā)
/C++
/數(shù)據(jù)結(jié)構(gòu)探險(xiǎn)之樹篇
老師能上傳一下你的源代碼嗎?
2019-08-15
源自:數(shù)據(jù)結(jié)構(gòu)探險(xiǎn)之樹篇 3-2
正在回答
#include <iostream>
#include "Tree.h"
using namespace std;
Tree::Tree(int size)
{
? ? m_iSize=size;
? ? m_pTree=new int[size];
? ? for(int i=0; i<size; i++)
? ? {
? ? ? ? m_pTree[i]=0;
? ? }
}
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 &m_pTree[nodeIndex];
bool Tree::AddNode(int nodeIndex,int direction,int *pNode)
? ? ? ? return false;
? ? if(direction==0)
? ? ? ? if(nodeIndex*2+1<0||nodeIndex*2+1>=m_iSize)
? ? ? ? {
? ? ? ? ? ? return false;
? ? ? ? }
? ? ? ? if(m_pTree[nodeIndex*2+1]!=0)
? ? ? ? m_pTree[nodeIndex*2+1]=*pNode;
? ? if(direction==1)
? ? ? ? if(nodeIndex*2+2<0||nodeIndex*2+2>=m_iSize)
? ? ? ? if(m_pTree[nodeIndex*2+2]!=0)
? ? ? ? m_pTree[nodeIndex*2+2]=*pNode;
? ? return true;
bool Tree::DeleteNode(int nodeIndex,int *pNode)
? ? *pNode=m_pTree[nodeIndex];
? ? m_pTree[nodeIndex]=0;
void Tree::TreeTraverse()
? ? for(int i=0;i<m_iSize;i++)
? ? ? ? cout<<m_pTree[i]<<" ";
#ifndef TREE_H
#define TREE_H
#ifdef __cplusplus
class Tree
public:
? ? Tree(int size);
? ? ~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
舉報(bào)
樹,將為你開啟更精彩的數(shù)據(jù)結(jié)構(gòu)大門,了解更多概念
2 回答二叉樹源代碼有嗎?
3 回答老師代碼可以實(shí)現(xiàn)所有二叉樹
2 回答能不能下載視頻
1 回答這是遞歸調(diào)用函數(shù),請(qǐng)問它一直遞歸,會(huì)返還上一層嗎
3 回答能不能舉個(gè)查找一個(gè)節(jié)點(diǎn)的例子?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2019-09-05
#include <iostream>
#include "Tree.h"
using namespace std;
Tree::Tree(int size)
{
? ? m_iSize=size;
? ? m_pTree=new int[size];
? ? for(int i=0; i<size; i++)
? ? {
? ? ? ? m_pTree[i]=0;
? ? }
}
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<0||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<0||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]<<" ";
? ? }
}
2019-09-05
#ifndef TREE_H
#define TREE_H
#ifdef __cplusplus
class Tree
{
public:
? ? Tree(int size);
? ? ~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
#endif // TREE_H