我制作了树数据结构,但是当我擦除
下面的对象问题内容时遇到问题:
* `./t' 中的错误:free(): 无效指针:0x00007ffd1df99400 *
???(核心转储)
源代码
主程序
#include<iostream>
#include"tree.h"
#include"point.h"
using namespace std;
template<class T>
void ShowIntData(Point<T> data)
{
cout<<data.x<<" "<<data.y<<endl;
}
typedef Point<double> pd;
int main(void)
{
BTreeNode<pd> bt1; bt1.make();
BTreeNode<pd> bt2; bt2.make();
BTreeNode<pd> bt3; bt3.make();
BTreeNode<pd> bt4; bt4.make();
bt1.SetData(pd(1,10));
bt2.SetData(pd(2,20));
bt3.SetData(pd(3,30));
bt4.SetData(pd(4,40));
bt1.MakeLeftSubTree(&bt2);
bt1.MakeRightSubTree(&bt3);
bt2.MakeLeftSubTree(&bt4);
bt1.InorderTraverse(ShowIntData);
cout<<endl;
bt1.PreorderTraverse(ShowIntData);
cout<<endl;
bt1.PostorderTraverse(ShowIntData);
cout<<endl;
bt1.DeleteTree(); // Error occurred
return 0;
}
Run Code Online (Sandbox Code Playgroud)
点.h
#ifndef __T_POINT_H__
#define __T_POINT_H__
template<class T>
struct Point
{
T x;
T y;
Point() : x(0),y(0){} …Run Code Online (Sandbox Code Playgroud)