东北大学计算机专业(专业硕士)研究生入学考试2009真题
/*-----------------------------------------------数据结构部分---------------------------------------------------------*/
/*1.写出将循环单链表中结点X的直接前驱删除的算法(X为指针,且从X指向的结点出发进行删除)。*/
typedef struct LNode
{ElemType data;struct LNode *next;
}LinkList;void deleteNode(LinkList *X)
{LinkList *p = NULL, *q = NULL; //q为搜索指针,指向X的前驱的前驱;p指向q后继结点,即指向X的前驱q = X; //从X指向的结点开始while(q->next->next != X) //循环结束后q将指向X的前驱的前驱{q = q->next;}p = q->next;q->next = X; //将X的前驱删除free(p);
} //对于链表的删除算法有一个技巧就是要想删除必须的知道要删除结点的前驱结点,所以在设计算法的时候要记得把其前驱结点设出来/*2.设某二叉树以二叉链表为存储结构,设计算法将二叉树中各结点的左右孩子位置互换。*/
//!!!!!!!考试的时候只写交换部分的代码就可以,平时练习就多练点吧
#include<stdio.h>
#include<stdlib.h>
#define max 20//定义树的结点数typedef struct BTNode//定义二叉树结点类型
{char data;//结点数据类型struct BTNode *lc,*rc;//左右指针
}BTree;BTree *createtree(char *str,int i,int m)//将字符串str中第i到第m个字符创建树
{BTree *p;if(i >= m)return 0;p = (BTree*)malloc(sizeof(BTree));//生成新结点p->data = str[i];//将结点的第一个数据赋给根p->lc = createtree(str,2*i+1,m);//创建左子树p->rc = createtree(str,2*i+2,m);//创建右子树return (p);
}BTree *Exchange(BTree *p)//将p指针指向的二叉树的左右子树进行互换。
{BTree *stack[max];//指针类型的堆栈int k = 0;stack[k] = 0;if(p != NULL)//交换p结点的左右孩子{k++;stack[k] = p->lc;p->lc = p->rc;p->rc = stack[k];p->lc = Exchange(p->lc);p->rc = Exchange(p->rc);}return(p);
}void PreOrder(BTree *t)//先序遍历
{if(t != NULL){printf("%c",t->data);if(t->lc){printf("->");PreOrder(t->lc);}if(t->rc){printf("->");PreOrder(t->rc);}}
}void InOrder(BTree *p)//中序遍历
{if(p != NULL){InOrder(p->lc);printf("%c",p->data);printf("->");InOrder(p->rc);}
}void PostOrder(BTree *p)//后序遍历
{if(p != NULL){PostOrder(p->lc);PostOrder(p->rc);printf("%c",p->data);printf("->");}
}void cengci(BTree *t,int m)//按层次遍历,使用队列
{BTree *queue[max], *p;int front = 0,rear = 0,i;queue[rear++] = t;while(front != rear){p = queue[front];front = (front+1)%m;printf("%c->",p->date);//输出根结点if(p->lc != NULL)//遍历左子树{if((rear+1)%m != front){queue[rear] = p->lc;rear = (rear+1)%m;}}if(p->rc != NULL)//遍历右子树{if((rear+1)%m != front){queue[rear] = p->rc;rear = (rear+1)%m;}}}
}int main()
{int i,n;char str[max];BTree *root;//二叉树根结点的指针printf("请输入结点数目n:");scanf("%d",&n);getchar();printf("请输入%d个结点:",n);for(i = 0;i < n;i++)str[i] = getchar();root = CreateTree(str,0,n); //创建树root = Exchange(root);//交换左右子树printf("左右子树交换后!\n");printf("层次遍历是:\n");cengci(root,n);printf("\n先序遍历是:\n");PreOrder(root);printf("\n中序遍历是:\n");InOrder(root);printf("\n后序遍历是:\n");PostOrder(root);
}/*3.已知一棵二叉树的前序序列和中序序列分别存于两个一维数组中,试编写算法建立该二叉树的二叉链表。*/
typedef char TElemType;
typedef struct BiTNode
{TElemType data;BiTNode *lchild, *rchild;
} BiTNode, *BiTree;/* 当前要建立的子树bt的元素总数为n,*/
/* 元素在前序序列pre的起始位置为ps,*/
/* 元素在中序序列ino的起始位置为is */
void BuildBiTree(BiTree &bt, int ps, char *pre,int is, char *ino, int n)
{ int i,in1,count = 0;if(n < 1)return; bt = (BiTree)malloc(sizeof(BiTNode));bt->data = pre[ps];bt->lchild = NULL;bt->rchild = NULL;//找出中序序列的中点for(i = is;ino[i] != pre[ps];++i)++count;in1 = i;BuildBiTree(bt->lchild,ps+1,pre,is,ino,count);BuildBiTree(bt->rchild,ps+count+1,pre,in1+1,ino,n-1-count);
}
东北大学计算机专业(专业硕士)研究生入学考试2009真题相关推荐
- 2023年图情档研究生入学考试专业课真题回忆版
文章目录 2023年四川大学图情档研究生入学考试专业课真题回忆版 667信息管理基础 名词解释(25分) 简答题(25分) 分析题(100分) 972信息检索 辨析题(25分) 简答题(45分) 分析 ...
- 计算机组成原理944考试,郑州大学2019年硕士研究生入学考试 《944计算机组成原理》考试大纲...
郑州大学2019年硕士研究生入学考试 <944计算机组成原理>考试大纲 附件:郑州郑州大学大学年硕士生入学考试初试自命题科目考试大纲硕士生入学考试初试自命题科目考试大纲学院名称科目代码科目 ...
- 832计算机专业基础,2020年福建师范大学832计算机应用综合专业硕士研究生入学考试大纲...
全国各省市院校2020年硕士研究生考试大纲汇总(持续更新中)>>> 2020年全国硕士研究生入学考试命题标准大纲已于7月8日正式公布,接下来全国各研招院校将陆续发布2020考研专业课 ...
- 中央民族大学计算机考研考什么,中央民族大学电子信息专业硕士研究生入学考试初试科目考试大纲...
中央民族大学电子信息专业硕士研究生入学考试 初试科目考试大纲 科目代码:852 (备注:电子信息专业硕士下设电子与通信工程和计算机技术两个方向,其中电子与通信工程方向考试科目为信号与系统,计算机技术方 ...
- 山东理工大计算机专业学什么科目,2020年山东理工大学计算机科学与技术学院880数据结构硕士研究生入学考试科目大纲...
国各省市院校2020年硕士研究生考试大纲汇总(持续更新中)>>> 2020年国硕士研究生入学考试命题标准大纲已于7月8日正式公布,接下来国各研招院校将陆续发布2020考研专业课大纲. ...
- java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现MyBatis+系统+LW文档+源码+调试部署
java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与 ...
- java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实现源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计web硕士研究生招生考试专业报考查询及学习系统设计与实 ...
- 华科计算机学院多难考,计算机学院2019年硕士研究生入学考试成绩公告
根据学校有关要求,现将计算机学院2019年硕士研究生入学考试成绩公示如下: 一.招生计划 根据学校下达的招生计划见附件1. 二.考试成绩 考试成绩见附件2-5. 三.调剂工作说明 1.网络空间安全学硕 ...
- 2019中南大学考研计算机考试,中南大学2019年全国硕士研究生入学考试《计算机网络》考.PDF...
中南大学2019年全国硕士研究生入学考试<计算机网络>考 中南大学2019年全国硕士研究生入学考试 <计算机网络>考试大纲 本考试大纲由信息科学与工程学院教授委员会于2018年 ...
最新文章
- asp.net webapi 微信接口接入
- docker 必然用到的一些指令
- 怎么解决64位Access与32位不能同时安装的问题
- Apache整合Tomcat
- 【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细
- python 画树 递归_数据结构 - python如何递归生成树?
- git批量删除文件和批量提交
- C++中volatile的作用
- VMware Workstation 14 Pro永久激活密钥
- java mschart_vb之mschart控件小结
- Entity Relationship diagram/Data model for Microsoft Navision
- 【毕业论文】参考文献的引用格式
- 建立两个磁盘文件f1.dat和f2.dat,编程序实现以下工作
- 综合布线之“五星对话”
- Java Number 类和方法
- 福布斯:美国Top 50金融科技公司简介
- 今日学习的关于笔记本电脑和origin绘图的一些
- 【车载以太网】【架构】整体架构与协议标准
- 删除错误提交的bit 历史_软件错误的历史
- vue2+element-ui创建顶部导航栏及下拉菜单
热门文章
- HiSecEngine USG6500E系列AI防火墙(盒式)资料分享
- 计算机网络nsi,运行 NSI 服务 Svchost.exe 泄漏内存和非页面缓冲池内存泄漏标记 NSpc...
- Android 9.0 蓝牙去掉传输文件的功能
- ubuntu重置密码忘记_在2分钟或更短时间内重置您忘记的Ubuntu密码
- 【itext学习之路】-------(第四篇)给pdf增加文本水印和图片水印
- 【Echarts】全国大学信息可视化
- 数据结构:链表(Linklist)的定义和它的函数们
- 【Js】JS的历史:认识JS的来龙去脉
- 2019年江苏省科技成果转化专项资金项目做了哪些调整
- ChatGPT人工智能热潮之下,NCSI功能OCP网卡助力数据中心发展