- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二叉树结点路径求解源程序清单
#includeiostream.h
#includestdlib.h
#includeconio.h
#include1.h
#include2.h
#include3.h
void main()
{
BiTreeNodechar *root;
MakeCharTree(root);
coutroot树为:endl;
PrintVTree(root);
coutendl;
cout请输入要查找的结点:;
char buf;
cinbuf;
check(buf);
path(root,buf);
} ………………………………………上述程序保存在主程序a.cpp中
#includeiostream.h
#includestdlib.h
templateclass T class LinQueue;
templateclass T
class QueueNode
{
friend class LinQueueT;
private:
QueueNodeT *next;
public:
T data;
QueueNode(const T item,QueueNodeT *ptrNext=NULL)
{data=item;next=ptrNext;}~QueueNode(){};
};
templateclass T
class LinQueue
{
private:
QueueNodeT * front;
QueueNodeT * rear;
int size;
public:
LinQueue(void);
~LinQueue(void);
void QInsert(const T item);
T QDelete(void);
T QFront(void)const;
int QueueEmpty(void)const
{return size=0;};
void ClearQueue(void);
int GetSize(void)const
{return size;};
};
templateclass T
LinQueueT::LinQueue()
{
front=rear=NULL;
size=0;
}
templateclass T
LinQueueT::~LinQueue(void)
{
ClearQueue();
front=rear=NULL;
}
templateclass T
void LinQueueT::QInsert(const T item)
{
QueueNodeT * newNode=new QueueNodeT(item,NULL);
if(rear!=NULL) rear-next=newNode;
rear=newNode;
if(front==NULL) front=newNode;
size++;
}
templateclass T
T LinQueueT::QDelete(void)
{
if(size==0)
{
cout队列已空无元素可删!endl;
exit(0);
}
QueueNodeT *p=front-next;
T data=front-data;
delete front;
front=p;
size--;
return data;
}
templateclass T
T LinQueueT::QFront(void)const
{
return front-data;
}
templateclass T
void LinQueueT::ClearQueue(void)
{
QueueNodeT *p,*p1;
p=front;
while(p!=NULL)
{
p1=p;
p=p-next;
delete p1;
}
size=0;
} ……………………………………………以上程序保存在LinQueue.h中
#includeiostream.h
#includestdlib.h
templateclass T class BiTreeNode
{
private:
BiTreeNodeT *leftChild; //左子树指针
BiTreeNodeT *rightChild; //右子树指针
public:
T data; //数据元素
//构建函数和析构函数
BiTreeNode():leftChild(NULL),rightChild(NULL){};
BiTreeNod
文档评论(0)