国家电网考试备考资料:计算机之数据结构与算法(二)
3.队列 (Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。
顺序队列
空队时指针(下标)front和rear在一起都指向队前方,当有元素进队,则rear后移;有元
素出队,则front后移,最后,开始时分配给队的前端不再被利用。
为了充分利用队列,顺序队列总是做成一个逻辑上的循环队列。
注意:空队时rear等于front,满队时必须空一个位置。
顺序循环队列类模板
templateclass Queue
{
int rear,front; //队尾与队头下标
T *elements; //存放队列元素的容器
int maxSize; //队列最多可容纳元素个数+1
public:
Queue(int ms=18);
~Queue()
{
delete[] elements;
}
bool IsEmpty() const //判队空
{
return front==rear;
}
bool IsFull() const //判队满
{
return (rear+1)%maxSize==front;
}
int Length() const //求队中元素数,注意求余算法
{
return (rear-front+maxSize)%maxSize;
}
void EnQue(const T &data); //进队
T DeQue(); //出队
T GetFront(); //取队头数据
void MakeEmpty()//队置空(初始态)
{
front=rear=0;
}
};
4.链表 (Linked List)
是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
基本操作(pascal语言)
建立
第一行读入n,表示n个数
第二行包括n个数
以链表的形式存储输出这些数
在以z为头的链表中搜索第一个n,如果找到则删去,返回值为1,否则返回0
查找
类似于删除,只需要找到不删即可
插入
插入,在以zz为头的链表第w个的前面插入nn元素,函数返回值正常是0,如果w超过了链表的长度,函数返回链表的长度
辅导课程
图书推荐
国有企业复习资料
国有企业最新信息
- 1贵州谷景资源开发投资(集团)有限公司2023年公开招聘工作人员拟聘人选公告
- 2就业向未来 建功新时代2023年度贵州省国有企业专场招聘贵州省公路建设养护集团有限公司招聘录用公示
- 3印江县三家县属国有企业“就业向未来 建功新时代” 2023年专场招聘笔试成绩公示及资格复审和面试相关事宜的通知
- 4贵州丹隆建筑工程有限责任公司2023年招聘工作人员进入体检人员名单公示
- 5六盘水鸿馨劳务有限公司关于贵州金鸿实业(集团)有限责任公司2023年公开招聘劳务派遣制工作人员面试成绩公告
- 6关于公布贵州习酒电子商务信息产业有限公司2023年招聘面试人员名单的通知
- 7贵州茅台酒股份有限公司2023年校园招聘拟聘用人员公示
- 8六枝特区能源投资(集团)有限责任公司2023年公开招聘工作人员面试成绩及进入体检人员公告
- 9贵州茅台酒厂(集团)循环经济产业投资开发有限公司、贵州尊朋酒业有限责任公司2023年社会招聘关于调整招聘计划及笔试相关事宜的公告
- 10册亨县思源供水有限责任公司2023年面向社会公开招聘副经理面试安排事宜公告
最新招考信息
- 1贵州省第二人民医院关于2023年第十一届贵州人才博览会引进急需紧缺人才的公告
- 2贵州黄牛产业集团思南县有限责任公司2023年人才招聘方案
- 3安顺市西秀区西街社区卫生服务中心2023年放射技师招聘方案
- 4平塘县2023年县直机关事业单位公开遴选工作人员公告
- 5罗甸县教育系统2023年赴贵州师范大学公开引进高层次和急需紧缺专业教师公告
- 6遵义市新蒲新区管理委员会卫生健康局2023年公开招聘公益性岗位人员公告
- 7贵州理工学院2023年人才引进公告
- 8纳雍县2023年公开考调县直部门工作人员实施方案
- 9中国石油2023年高校毕业生春季招聘公告
- 10都匀经济开发区总工会2023年公开招聘工会专职社会工作者公告