资源简介

本人考研上岸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


评论

共有 条评论