二叉树 求结点个数-c++编程,,跪求大神解答

问题描述

c++编程,,跪求大神解答

#include

using namespace std;

template

struct BiNode

{
BiNode *lchild;
datatype data;
BiNode *rchild;

};

template

struct element

{

BiNode *ptr;
int flag;

};

BiNode *first,*bt,*q,*temp,stack[20],queue[20];

element s[20];

int count=0;

template

class BiTree

{

void creat(BiNode<datatype> *bt)

{
char ch;
cin>>ch;
if(ch=='#') bt=NULL;
else
{
bt==new BiNode;
bt->data=ch;
creat(bt->lchild);
creat(bt->rchild);
}
}
void preorder(BiNode *bt)
{
int top=-1;
while(bt!=NULL || top!=-1)
{
while(bt!=NULL)
{
cout<data;
stack[++top]=*bt;
bt=bt->lchild;
}
if(top!=-1)
{
bt=&stack[top--];
bt=bt->rchild;
}
}
}

void inorder(BiNode bt)
{
int top=-1;
while(bt!=NULL || top!=-1)
{
while(bt!=NULL)
{
stack[++top]=*bt;
bt=bt->lchild; }
if(top!=-1)
{
bt=&stack[top--];
cout<data;
bt=bt->rchild;
}
}
}

void postorder(BiNode *bt)
{ int top=-1;
while(bt!=NULL || top!=-1)
{
while(bt!=NULL)
{ top++;
s[top].ptr=bt;
s[top].flag=1;
bt=bt->lchild;
}
while(top!=-1 && s[top].flag==2)
{ bt=s[top--].ptr;
cout<data;
if(top==-1);
bt=NULL;
}
if(top!=-1)
{
s[top].flag=2;
root=s[top].ptr->rchild;
}
}
}
void levelorder(BiNode *bt)
{
int front,rear;
front=rear=0;
if(bt==NULL) return;
queue[++rear]=*bt;
while(front!=rear)
{ q=&queue[++front];
cout<data;
if(q->lchild!=NULL) queue[++rear]=
(q->lchild);
if(q->rchild!=NULL) queue[++rear]=*(q->rchild);
}
}

void dgpreorder(BiNode *bt)
{
if(bt==NULL) return;
else
{
cout<data;
dgpreorder(bt->lchild);
dgpreorder(bt->rchild);
}
}
void dginorder(BiNode *bt)
{if(bt==NULL) return;
else
{
dginorder(bt->lchild);
cout<data;
dginorder(bt->rchild);
}

}
void dgpostorder(BiNode *bt)
{
if(bt==NULL) return;
else
{
dgpostorder(bt->lchild);
dgpostorder(bt->rchild);
cout<data;
}

}
void countleaf(BiNode *bt,int &count)

{
if(bt!=NULL)
{
if(bt->lchild==NULL && bt->rchild==NULL)
count++;
countleaf(bt->lchild,count);
countleaf(bt->rchild,count);
}

}

void main()

{

BiTree my;

cout<<"请依次输入拓展二叉树的前序遍历序列:"<<endl;
my.creat(bt);
first=bt;

cout<<"以下为非递归算法的各种遍历序列:"<<endl;
cout<<"二叉树的前序遍历序列为:"<<endl;
my.preorder(first);

cout<<"二叉树的中序遍历序列为:"endl;
my.inorder(first);

cout<<"二叉树的后序遍历序列为:"<<endl;
my.postorder(first);

cout<<"二叉树的层序遍历序列为:"<endl;
my.levelorder(first);

cout<<"以下为递归算法的各种遍历序列:"<<endl;
cout<<"二叉树的前序遍历序列为:"<endl;
my.dgpreorder(first);

cout<<"二叉树的中序遍历序列为:"<<endl;
my.dginorder(first);

cout<<"二叉树的后序遍历序列为:"<<endl;
my.dgpostorder(first);
my.countleaf(first,count);

cout<<"叶子结点的个数:"<<count<<endl;

cout<<endl;

}
};

总是出现这两个错误,请问要怎么解决??
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/bitree.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

解决方案

如果你用的是VC++,最好新建一个控制台项目,不要修改默认程序入口的函数名。然后把你的代码贴进去。(推荐)

或者你可以设置下链接器的程序入口点
参考
http://wenku.baidu.com/link?url=sKPXdV8rkVR-o8obBds0KQ65LU4pBH8MD0wsCrpMeDOzXeTByUVg5HYFfuJu5MhLNbZtcAUS9r-HIGwBK5MokMafUyyj0_KnMJhVdGFTh5e

解决方案二:

代码不全,想帮你看看也表示无力

解决方案三:

http://blog.csdn.net/zhangleo1987/article/details/5718653

时间: 2024-12-31 20:27:03

二叉树 求结点个数-c++编程,,跪求大神解答的相关文章

异常-opencv3新手编程求助,跪求大神解答

问题描述 opencv3新手编程求助,跪求大神解答 代码如下: #include #include #include using namespace std; using namespace cv; bool MultiChannelBlending(); int main(){ if (MultiChannelBlending()){ cout << endl << "尼玛真费劲!"; } waitKey(); return 0; } bool MultiCh

单链表-请教C编程题,本人初学者,求大神解答,万分感谢

问题描述 请教C编程题,本人初学者,求大神解答,万分感谢 求大侠帮忙:C语言程序设计---编程题说明:以下所有题目程序应是非递归的) 编写一个函数,输出整数m的全部素数因子.例如,m=120时,素数因子为:2,2,2,3,5 请编写程序判断一个字符串是否是回文.若是回文,函数返回值为1,否则返回值为0.(回文是顺读和倒读都一样的字符串).要求: 1) 编写sub()判断一字符串是否为回文 2) 在主函数中完成数据的输入与结果的输出 3.起泡排序是把大的元素向下移,也可以将小的元素向上移,请给出下

java-JAVA编程问题,大神求带

问题描述 JAVA编程问题,大神求带 3.编写程序,输入一个数,判断它是不是完全平方数,如果是,输出其平方根. 解决方案 public boolean isFullSquare(int n) { double m = Math.sqrt(n);// 求这个是的开二次方 int k = (int) m; // 把开方的数,转换成整型 if (m - k == 0) // 如果转换后的整型数,和原先开方的数,又差别,则肯定不是完全平方数,也就是开方后出现了小数部分 return true; else

memcached中的server端的lru算法能不能改成lirs算法跪求大神解答

问题描述 memcached中的server端的lru算法能不能改成lirs算法跪求大神解答 memcached中的server端的lru算法能不能改成lirs算法,最近有个任务就是把memcached中lru算法改成lirs 好纠结,本身就对c不熟悉 解决方案 那估计需要你自己修改源码了. 解决方案二: 对 就是改源码 我想知道是大改还是小改 我认为很麻烦,因为item贯穿于memcached的很多地方,但是安排任务的老师认为只需要修改有lru算法那个地方,我很无语 而且让我赶快进入编程阶段,

接口-银联支付,PHP如何获取银联的流水号?跪求大神解答。

问题描述 银联支付,PHP如何获取银联的流水号?跪求大神解答. 解决方案 最近刚做完这块 ,如果还需要可以找我要源码. 解决方案二: 你直接调用api,有接口的.你自己查看对接文档. 解决方案三: 看看这个文档,对你有用http://www.360doc.com/content/14/0909/17/9200790_408206083.shtml 解决方案四: 看看这个文档,对你有用http://www.360doc.com/content/14/0909/17/9200790_40820608

vc++编程问题-编程实现DFA识别字符串的过程,求大神解答

问题描述 编程实现DFA识别字符串的过程,求大神解答 编程实现DFA识别字符串的过程,1DFA的输入与DFA的存储,确定DFA的数据结构以及存储格式2DFA的正确性检查,看DFA的五元组是否正确,3输入任意一个整数N,DFA的能列表显示其识别的所有长度小于等于N的字符串4DFA的规则字符串判定,输入一个字符串,模拟DFA识别字符串的过程,判定该字符串是否是规则字符串 解决方案 1.dfa算法不是几十行代码可以搞定的: 2.可以使用线程cfa算法库,没有必要自己再实现一个dfa算法.

mingw-MinGw编译GMP库时出错,跪求大神解答

问题描述 MinGw编译GMP库时出错,跪求大神解答 Config.log如下: This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by GNU MP configure 6.1.0, which was generated by GNU Autoconf 2.69.

tang-c++编程题,求大神解答............谢谢啦...........

问题描述 c++编程题,求大神解答............谢谢啦........... 在一个数组中首先判断里的自符是否为回文字符,如果是在按其长度排序,若相同长度的则按ASCII码排序(用c++)求大神解救....... 解决方案 花了一小时弄的,,,亲测. #include<iostream> using namespace std; bool judge(char *str); void sort(char *Selected[],int n); int Length(char *str

安卓开发app 视频提取一部分保存在手机内。如何实现求源码。新手跪求!!!

问题描述 安卓开发app 视频提取一部分保存在手机内.如何实现求源码.新手跪求!!! 想把手机里的一个时间长的视频提取中间的一部分另存在手机内.方便以后使用.!!! 解决方案 可以用ffmpeg来提取视频.http://blog.chinaunix.net/uid-20771867-id-4114253.html 解决方案二: 一楼回答的即可.就是用ffmpeg来做. 或者用第三方的库来实现.www.vitamio.org/ 或者 趣拍SDK (阿里百川出品.)