资源简介
本人考研上岸985,自己整理了一些计算机408的资料,里面还有包括高数,英语的一些资料。需要的积分不是很多,希望下载看看~
代码片段和文件信息
// 寻找编号分别为i和j的两个结点的最近公共祖先结点。
int common_ancestor(BTree T int i int j) {
while(i!=j) {
if(i>j)
i=i/2; //向上寻找i的祖先
else
j=j/2; //向上寻找j的祖先
}
}
//先序遍历(NLR)
void PreOrder(BTree T) {
if(T!=NULL) {
visit(T); //访问根结点
PreOrder(T->lchild); //递归遍历左子树
PreOrder(T->rchild); //递归遍历右子树
}
}
//中序遍历(LNR)
void InOrder(BTree T) {
if(T!=NULL) {
PreOrder(T->lchild); //递归遍历左子树
visit(T); //访问根结点
PreOrder(T->rchild); //递归遍历右子树
}
}
//后序遍历(LRN)
void PostOrder(BTree T) {
if(T!=NULL) {
PreOrder(T->lchild); //递归遍历左子树
PreOrder(T->rchild); //递归遍历右子树
visit(T); //访问根结点
}
}
//中序遍历的非递归算法实现
void InOrder2(BTree T) {
InitStack(S); BTree p=T; //p为遍历指针
while(p||!IsEmpty(S)) { //栈不空或p不空
if(p) { //根指针入栈,遍历左子树
Push(S p);
//visit(p); //(先序)访问根结点
p=p->lchild;
}
else {
Pop(S p); //根指针退栈,遍历右子树
visit(p); //(中序)访问根结点
p=p->rchild;
}
}
}
void LevelOrder(BTree T) {
InitQueue(Q); BTree p;
EnQueue(Q T); //将根结点入队
while(!IsEmpty(Q)) {
DeQueue(Q p); //队头元素出队
visit(p); //访问结点
if(p->lchild!=NULL)
EnQueue(Q p->lchild); //左子树不为空,则入队
if(p->rchild!=NULL)
EnQueue(Q p->rchild); //右子树不为空,则入队
}
}
//求二叉树的高度
int heigthOfTree(BTree T) {
//某结点的高度等于该结点子树的最大高度加上根结点(1)。
if(T->NULL)
return 0;
else
return 1 + max(heigthOfTree(T->lchild) heigthOfTree(T->rchild));
}
//采用层次遍历的方法求二叉树的高度
int Btdepth(BTree T) {
if(!T)
return 0;
int front=-1 rear=-1;
int last=0 level=0; //last指向当前层最右结点
BTree Q[MaxSize];
Q[++rear]=T; //将根结点入队
BTree p;
while(front p=Q[++front]; //队头元素出队
if(p->lchild)
Q[++rear]=p->lchild; //左孩子入队
if(p->rchild)
Q[++rear]=p->rchild; //右孩子入队
if(front==last) { //处理该层的最右结点
level++; //层数加1
last=rear; //last指向下一层的最右结点
}
}
return level;
}
//求二叉树所有结点的个数
int numOfNodes(BTree T) {
//当树为空时,结点个数为0;否则为根节点个数(1)加上根的左子树中节点个数再加上根的右子树中节点的个数。
if(T==NULL)
return 0;
else
return 1 + numOfNodes(T->lchild) + numOfNodes(T->rchild);
}
//求二叉树的叶子结点个数
int numOfLeaf(BTree T) {
//叶子结点数等于左子树的叶子结点数加上右子树的叶子结点数
if(T==NULL)
return 0;
if(T->lchild==NULL && T->rchild==rchild) //当某个节点的左右子树均为空时,则该结点为叶子结点。
return 1;
else
return numOfLeaf(T->lchild) + numOfLeaf(T->rchild);
}
//求二叉树某结点的双亲
BTree ParentOfNode(BTree T BTree root BTree p) {
if(T==root)
return NULL;
if(T!=NULL) {
if(T->lchild==p || T->rchild==p)
return T;
ParentOfNode(T->lchild root p);
ParentOfNode(T->rchild root p);
}
}
//判断二叉树是否为完全二叉树
//采用层次遍历的算法,将所有结点假如队列(包括空结点)。
//当遇到空结点时,检查其后是否有非空结点。若有,则不是完全二叉树。
bool IsComplete(BTree T) {
InitQueue(Q);
BTree p;
if(!T)
return 1; //空树是满二叉树
EnQueue(T);
while(!IsEmpty(Q)) {
DeQueue(Q p);
if(p) {
EnQueue(Q p->lchild);
EnQueue(Q p->rchild);
}
else {
while(!IsEmpty(Q)) {
DeQueue(Q p);
if(p)
r
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 545044 2018-12-17 16:31 英语二真题单词.pdf
文件 12216 2018-12-10 16:53 code.c
文件 368425 2018-12-20 22:03 操作系统.pdf
文件 283821 2018-11-24 18:31 词汇表.pdf
文件 259250 2018-12-20 22:01 计算机网络.pdf
文件 636903 2018-12-20 22:05 计算机组成原理.pdf
文件 1442704 2018-11-07 11:40 计组补充知识.docx
文件 607503 2018-11-07 11:24 流水线五个段.pdf
文件 1370106 2018-12-20 22:03 数据结构.pdf
文件 20030 2018-12-20 15:13 数学笔记.docx
文件 265885 2018-12-20 21:59 英二大作文.pdf
文件 66000 2018-12-21 11:36 英语二翻译.pdf
文件 14072 2018-11-16 21:37 408大题.docx
----------- --------- ---------- ----- ----
5891959 13
相关资源
- Advanced Data Structures(英文版)数据结
- 武汉理工852数据结构真题以及期末考
- mooc浙大数据结构
- 江南大学复试真题资料.rar
- 数据结构与算法分析中文版第二版
- 自动控制原理考研大串讲
- 计算机操作系统课件+考研冲刺班讲义
- 1980-2020考研英语二历年真题及解析文
- 计算机组成原理课设140852
- 天津大学计算机考研初试+复试攻略学
- 数据结构课设文件系统模拟器
- 数据结构期末复习+试卷--杭电
- 数据结构高一凡.
- 浙江大学信号与系统考研真题
- ACM竞赛和考研复试机试知识点
- 中南大学 数据结构课程设计
- 数据结构代码
- 数据结构习题集
- 无线供电模块电路
- 4bfb07c95cb74765a4b61c408789b54d.zip
- 数据结构-游八套.doc
- 考研数学历年真题
- 数据结构典型题解析及自测试题
- 上海理工大学848数据结构操作系统2
- 目前最完整的数据结构1800题内含完整
- zw_woshidabing123-9484408-LxBlog_GBK.zip
- 数据结构1800题及答案
- 数据结构1800
- 汤家凤2019数学概率统计强化讲义
- 数据结构课程设计报告(最小生成树
评论
共有 条评论