当前位置: 考研辅导网 > 计算机考研 > 报考信息

计算机考研备考资料:数据结构(栈、队列和数组)

更新时间:2022-07-13来源:升研教育

升研教育考研频道为23考研、24考研的同学们整理了“计算机考研备考资料:数据结构(栈、队列和数组)”的相关信息,希望对正在备考的你有所帮助。考研复习效率不高怎么办?自己备考抓不住重点?想报考985/211等热门院校,但是没把握?升研教育推出考研集训营,全日制封闭式面授,10余年授课经验的老师,浓厚的学习氛围助你冲击目标、一战上研!

计算机考研专业课一般涉及到四个科目:数据结构、计算机组成原理、操作系统、计算机网络 ,知识点繁多,复习起来也并不失分容易,为了帮助大家复习,本篇为大家整理了一些数据结构中的知识点,供大家参考。


栈、队列和数组:


1、栈的基本概念

栈是一种“特殊的”线性表,这种线性表上的插入和删除运算限定在表的一端进行。允许插入和删除的这一端称为栈顶,另一端称为栈底。栈修改的原则是“后进先出”,所以栈又称为后进先出表(LIFO 表),

在栈顶进行插入称为进栈(或入栈),在栈顶进行删除称为退栈( 或出栈)。

2、栈的基本运算:至少包括以下5种:

①初始化InitStack (S)

②进栈Push (S,X)

③退栈Pop(s)

④读栈顶Top (S,X)

⑤判栈空Empty(S)

3、栈的顺序实现:

顺序栈类型定义如下:

 1.png


①当栈顶下标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、队列的顺序实现:

顺序队列类型定义如下:

 2.png


将队列设想成一个循环表,即设想数组的首尾相连: 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考研还剩

升研考研周末班·小班面授

姓名
电话

*提交信息代表您已同意升研教育《用户信息保护及隐私协议》

备考资料

咨询电话

400-000-8282

在线客服

点击咨询

关于我们加入我们版权声明客服中心网站地图

Copyright © 2018-2023 www.shengyan985.com 升研教育 版权所有 全国客服热线:400-000-8282

京ICP备2023019160号京公网安备11010802043051号