升研教育考研频道为23考研、24考研的同学们整理了“计算机考研备考资料:数据结构(栈、队列和数组)”的相关信息,希望对正在备考的你有所帮助。考研复习效率不高怎么办?自己备考抓不住重点?想报考985/211等热门院校,但是没把握?升研教育推出考研集训营,全日制封闭式面授,10余年授课经验的老师,浓厚的学习氛围助你冲击目标、一战上研!
计算机考研专业课一般涉及到四个科目:数据结构、计算机组成原理、操作系统、计算机网络 ,知识点繁多,复习起来也并不失分容易,为了帮助大家复习,本篇为大家整理了一些数据结构中的知识点,供大家参考。
栈、队列和数组:
1、栈的基本概念
栈是一种“特殊的”线性表,这种线性表上的插入和删除运算限定在表的一端进行。允许插入和删除的这一端称为栈顶,另一端称为栈底。栈修改的原则是“后进先出”,所以栈又称为后进先出表(LIFO 表),
在栈顶进行插入称为进栈(或入栈),在栈顶进行删除称为退栈( 或出栈)。
2、栈的基本运算:至少包括以下5种:
①初始化InitStack (S)
②进栈Push (S,X)
③退栈Pop(s)
④读栈顶Top (S,X)
⑤判栈空Empty(S)
3、栈的顺序实现:
顺序栈类型定义如下:
①当栈顶下标top==0时,栈空;
②栈空时作退栈运算,则产生下溢;
③当栈顶下标top== sqstack_maxsize时,栈满;
④栈满时作进栈运算,则产生上溢。
4、栈的链接实现:栈的链接实现称为链栈,组织形式同单链表,单链表的第一个结点就是链栈栈顶结点。
设1s时栈顶指针(单链表的头指针),则栈空的条件是: 1s==NULL; 另外不会栈满。
5、队列的基本概念
队列也是一种运算受限的线性表,在这种线性表上,插入限定在表的一端进行,删除限定在表的另一端进行。允许插入的一端称为队尾,允许删除的一端称为队头。队列的修改原则是“先进先出”,所以队列又称为先进先出表(FIF0 表)在队尾进行插入称为入队,在队头进行删除称为出队。
6、队列的基本运算,至少包括以下5种:
①初始化InitQueue (Q)
②入队列EnQueue (Q,X)
③出队OutQueue (Q)
④读队头GetQueue (Q,X)
⑤判队列空EmptyQueue (Q)
7、队列的顺序实现:
顺序队列类型定义如下:
将队列设想成一个循环表,即设想数组的首尾相连: sq. data[0]接在sq. data[maxsize-1]之后,这种存储结构称为循环队列。
①循环队列的入队操作为
sq. rear= (sq. rear+1) %maxsize;
sq. data[sq. rear]=x;
②循环队列的出队操作为
sq. front= (sq. front+1) %maxsize;
③循环队列的队满条件是
(sq. rear+1) %maxsize==sq. front
④循环队列的队空条件是
sq. rear==sq. front
8、队列的链接实现:队列的链接实现称为链队,实际上是一个同时带头指针和尾指针的单链表,头指针指向队头结点,尾指针指向队尾结点。设1q 是一链队,则队空的条件: 1q. front==1q. rear;另外不会队满。
9、数组:二维数组DataType A[m][n]可看成是由m个行向量或n个列向量组成的线性表。这种线性表的每一个数据元素本身也是一个线性表。数组通常只有两种基本运算:读和写。
10、数组的存储结构:通常采用顺序存储结构。
对二维(或多维)数组有两种存储方式:一种是以列序为主序的存储方式,另一种以行序为主序的存储方式。
C语言中的二维数组是以行序为主序存储的,且下标从0开始,每个元素使用k个单元,所以二维数组DataType a[m] [n]的任一 元素a[i] [j]的存储位置(地址)可有下式确定: loc[i,j]=loc [0,0]+ (n*i+j)*k
免责声明:本站所提供的内容部分来源于网络搜集整理,由本站编辑上传,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。
距2024考研还剩天
三师服务丨全程规划丨大咖领学
三师服务丨全程规划丨大咖领学
三师服务丨全程规划丨大咖领学