昨天晚上写的。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<bool> result(100,0);
void Go(const string &str,int n,int m,int pos)
{
if(m==n)
{
for(int i=0;i!=st[......]
昨天晚上写的。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<bool> result(100,0);
void Go(const string &str,int n,int m,int pos)
{
if(m==n)
{
for(int i=0;i!=st[......]
今天好像大脑有点疲劳了,或者是今天写得太多了,接近400行啊~
犯了两个有意思的错误,分享一下:
(1)写查双亲节点成员函数的时候 对数据2测试怎么怎么也过不去。把parent用2种方法分别写了2次 崩溃了。然后骤然发现在之前调用了一次assign 把根结点 1-->2.......
(2)还是写这个parent的时候 居然开了个队列开始准备塞东西 然后想起来这是三叉 好像有parent指针哦……
是该歇歇了,假期《数据结构》已经啃了大半本了,修养下该开学了。这[......]
没想到真的能写出来,因为这是第一次用类的方式封装描述。真的是第一次写类。而且加上二叉树这个比较难描述的东东,确实费了不少劲。发现面向对象确实是很好的。真的是让用户无需关心数据细节。当然可能是还没习惯,写得有点慢。
期间,递归的不熟练导致犯下了几次严重错误,好在自己都纠正了。
但是还有以下没有解决:
1、如何在类中调用函数指针?
2、Parent函数能不能用递归描述?
...
若有高手看到指点一二,不胜感激~
BiTree.h:定义了二叉类 BiTree以及基本操作
#in[......]
BiTree.h:顺序存储二叉树及其基本操作
enum {MAX_TREE=100,OK=0,WRONG=-1};
typedef int BTree[MAX_TREE];
typedef int Status;
struct position
{
int level,order;
};
void InitBiTree(BTree &T)
{
memset(T,0,sizeof(int)*MAX_TREE);
}
Status CreateBiTr[......]
Status TransposeMatrix(Matrix M,Matrix &T)
{
T.nu=M.mu;
T.mu=M.nu;
int *num,i,tmp;
num=new int[T.mu+1];
memset(num,0,sizeof(int)*(T.mu+1));
if(num==NULL)
return WRONG;
for(i=1;i<=M[......]