- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树的四种遍历和求父结点
树的四种遍历和求父结点
//queue.h
#includeiostream
using namespace std;
typedef char TElemType;
typedef struct node
{
TElemType data;
struct node*lchild;
struct node*rchild;
}BiTNode,*BinTree;
typedef BiTNode* QElemType;
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
void InitQueuePtr(LinkQueueQ)//初始化
{
Q.front=Q.rear=new QNode;
if(!Q.front)
exit(0);
Q.front-next=NULL;
}
void DestroyQueue(LinkQueueQ)//摧毁队列
{
while(Q.front)
{
Q.rear=Q.front-next;
free(Q.front);
Q.front=Q.rear;
}
}
void EnQueue(LinkQueueQ,QElemType e)//插入队列
{
QueuePtr p=new QNode;
if(!p)
exit(0);
p-data=e;
p-next=NULL;
Q.rear-next=p;
Q.rear=p;
}
void GetHead(LinkQueue Q,QElemTypee)
{
if(Q.front!=Q.rear)
e=Q.front-next-data;
}
void DeQueue(LinkQueue Q,QElemTypee)//出队列
{
QueuePtr p=new QNode;
if(Q.front==Q.rear)
return;
p=Q.front-next;
e=p-data;
Q.front-next=p-next;
if(Q.rear==p)
Q.rear=Q.front;
free(p);
}
bool QueueEmpty(LinkQueueQ)
{
if(Q.front==Q.rear)
return true;
return false;
}
//SqStack.h
#includeiostream
using namespace std;
typedef BiTNode* SElemType;
//typedef BiTNode* QElemType;
const int STACK_INIT_SIZE=100;
const int STACKINCREMENT=10;
typedef struct
{
SElemType *base;
SElemType *top;
int StackSize;
}SqStack;
void InitStack(SqStackS)//栈的初始化
{
S.base=new SElemType[STACK_INIT_SIZE];
if(S.base==NULL)
exit(0);
S.top=S.base;
S.StackSize=STACK_INIT_SIZE;
}
void Push(SqStackS,SElemType e)//压栈
{
if(S.top-S.base=S.StackSize)
{
S.base=(SElemType*)realloc(S.base,(S.StackSize+STACKINCREMENT)*sizeof(SElemType));
if(S.base==NULL)
return;
S.top=S.base+STACK_INIT_SIZE;
S.StackSize+=STACKINCREMENT;
}
*S.top++=e;
}
void GetTop(SqStack S,SElemTypee)//获取栈顶元素
{
if(S.top==S.base)
return;
e=*(S.top-1);
}
bool StackEmpty(SqStack S)
{
if(S.base==S.top)
return true;
return false;
}
bool Pop(SqStackS,SElemTypee)//退栈
{
if(S.top==S.base)
return false;
e=*--S.to
您可能关注的文档
最近下载
- 《GBT31586.2-2015-防护涂料体系对钢结构的防腐蚀保护涂层附着力内聚力(破坏强度)的评定和验收准则第2部分划格试验和划叉试验》.pdf
- 2023年11月湖南怀化市鹤城区财政局公开招聘工程造价财政投资评审人员5人笔试历年(2016-2023年)真题荟萃带答案解析.pdf
- 人教版六年级上册数学全套教案.pdf VIP
- 高速路收费站形象提升活动方案.docx
- 盐酸产品包装说明和使用说明书.pdf VIP
- 幼儿园区域材料投放.ppt VIP
- 韩国公共数据法.doc
- 《自动控制课程设计》总结报告-中国石油大学-自动化实习.doc
- 国家开放大学期末考试资料,22348+00883+建筑力学+一体化终结性考试复习指南20221220.pdf
- 门诊医疗服务行业发展趋势及前景展望分析报告.pptx
文档评论(0)