wzdjsgf 2015-11-29 12:44 采纳率: 0%
浏览 1344

为什么内存不可访问?

#include
#include
#include
#include
#include
#define MaxSize 100
#define DataType char
using namespace std;

//自定义函数,输出结点的数据域

//结点类
class Node {
friend class BTree;
private:
Node *lChild; //左子树指针
Node *rChild; //右子树指针
public:
DataType data; //数据域,存储数据元素

//构造结点函数
Node(){
lChild = NULL;
rChild = NULL;
}

//构造结点函数
Node(DataType item, Node *left = NULL,Node *right = NULL){
data = item;
lChild = left;
rChild = right;
}

//析构函数
~Node(){}
};

void Visit(Node* p) {
cout<data<<" ";
}
//二叉树类
class BTree {
public:
BTree(); //构造函数
void Create(int No[],char data[],int n); //创建二叉树
void Print(Node* r,int level); //实现二叉树的凹入表形式打印
private:
Node* root; //指向二叉树根结点的指针
};

//创建二叉树二叉链表
BTree::BTree() {
root = NULL;
}
Node* BTree::getRoot() {
return root;
}

// 已知二叉树的结点的层序编号序列,数据数列和结点数,建立此二叉树
void BTree::Create(int No[],char data[],int n) {
int num=1;
int row=1;

Node *p = new Node;
for(int i=0;i {
row=0;
p = this->root;
while(No[i]!=1){
while(1)
{
if(No[i] break;
row++;
}
if(((No[i]-pow(2,row-1)+1)*2)>pow(2,row-1))
{
p=p->rChild;
}
else
{
p=p->lChild;
}
No[i]-=pow(2,row-2);
}
p->data = data[i];
}
}
int main()
{
int n,i;
int * No;//层序编号动态数组;
DataType *data;//结点数据动态数组;
cout<<"请输入结点数"< cin>>n;
No=new int[n];
data=new char[n];
cout<<"请输入该结点的层序编号序列:";
for( i=0;i cin>>No[i] ;

cout<<"请输入结点的数据序列:";
for( i=0;i cin>>data[i];

BTree bt;
bt.Create(No,data,n);

getch();
}


图片说明

  • 写回答

3条回答 默认 最新

  • redphoenix111 2015-11-29 12:49
    关注

    YOU are becarefully to set initialize value!

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验