`

我的软考之路(三)——数据结构与算法(1)之线性

阅读更多

数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目,它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值,至少在一段时间之后,技术可以很快得到提高。同时,它也是软考的重点,我们需要对这部分的内容进行一下总结。

这篇博文主要是通过图来解决抽象问题。不多说了,我们先看一下数据结构和算法的整体内容。

数据结构和算法的内容并不多,我们先从数据结构开始,数据结构总结完之后,再学习算法,我们要小火慢炖,一口一口吃掉它。

 

1、线性表

概念:

数据元素的排列方式是线性。

分类:

分类规则是根据上图中元素的存储结构来划分的。

(1)顺序表

基本思想:元素的存储空间是连续的。在内存中是以顺序存储,内存划分的区域是连续的。存储结构如下图:

 

(2)链表

基本思想:元素的存储空间是离散的,单独的(物理),它们可以通过在逻辑上指针的联系使得它成为了整体的链表。存储结构如下图:

 

1.单链表

 

2.循环链表

3.双链表(双向循环表)

 

 

三者的区别(从上面三个图我们可以总结出来):

1、它们都有数据域(data(p))和指针域(next(p)),但是从图中可以看出双链表有两个指针域,一个指向它的前点,一个指向它的后点。

2、单链表最后一个点的指针域为空,没有后继节点;循环链表和双链表最后一个点的指针域指向头点,下一个结点为头点,构成循环;

3、单链表和循环链表只可向一个方向遍历;双链表和循环链表,首节点和尾节点被连接在一起,可视为“无头无尾”;双链表可以向两个方向移动,灵活度更大。

 

线性表操作:

理解了顺序表和链表的基本思想之后,线性表的操作是简单,并且网上有很多讲解插入和删除结点的博客,在这里我就不过多的介绍了。

 

顺序表和链表的对比:

 

栈和队列是特殊的线性表,既然特殊就有不同点。

 

2、栈

基本思想:后进先出(先进后出)即栈中元素被处理时,按后进先出的顺序进行,栈又叫后进先出表(LIFO)。

举例:

日常生活中有很多栈的例子。例如,放在书桌上的一摞书,只能从书顶上拿走一本书,书也只能放在顶上。如下图所示:

 

3、队列

基本思想:先进先出即先被接收的元素将先被处理,又叫先进先出表(FIFO)。如下图所示:

举例:

队列的例子,生活中更多。比如:买车票排队,排头最先买到车票,新来的排的队尾;进车站时,安检行李,先进去的最先出来,后进去的后出来。

 

分类:

1.顺序队列

如下图所示:

顺序队列的操作,要判断队满和队空的标志,从图中我们可以总结得到:

1.队空:head = tail

2.队满:tail = m

2.循环队列

如下图所示:

循环队列的操作,要判断队空和队满的情况,从图中我们可以总结得到:

1.队空:head = tail

2.队满:tail + 1 = head(在队列中会留一个空着的空间,所以要加1)

 

总结

线性表真的很简单,我反正是会了,你会了吗?

 

后续博客的更新列表,敬请期待。

 

我的软考之路(一)——开篇已更新

我的软考之路(二)——J2SE宏观总结已更新

我的软考之路(三)——数据结构与算法(1)之线性表已更新

我的软考之路(四)——数据结构与算法(2)之树与二叉树已更新

我的软考之路(五)——数据结构与算法(3)之图已更新

我的软考之路(六)——数据结构与算法(4)之八大排序已更新

我的软考之路(七)——数据结构与算法(5)之查找已更新

 

 

分享到:
评论

相关推荐

    软考辅导-数据结构与算法(“结点”文档)共134张.pptx

    "软考辅导-数据结构与算法(“结点”文档)共134张.pptx" 本资源摘要信息是关于数据结构与算法的知识点总结,涵盖了数据结构的概念、逻辑结构、存储结构、常用数据结构、算法基础、排序算法、查找算法、数值计算、...

    软考初级程序员模拟题

    2. **算法与数据结构**:掌握基本的排序算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序等)和查找算法(如线性查找、二分查找等),以及链表、栈、队列、树和图等数据结构的概念和操作。 3. **计算机...

    字符串模式匹配KMP算法详解.doc

    `next`数组是KMP算法的核心数据结构之一,用于记录模式串中的部分匹配信息。对于模式串`T`,`next`数组的定义如下: - `next[j]`表示模式串`T`中以`T[j]`为当前字符的最长相同前缀和后缀的长度。 例如,对于模式串...

    软件设计师考试考点分析与真题详解(第4版)最新版

    《软件设计师考试考点分析与真题详解(第4版)最新版》是一本针对中级软考——软件设计师资格认证考试的辅导书籍。其内容主要涵盖数据结构与算法设计的基础知识、常用数据结构和算法的定义、存储、操作以及算法设计...

    希赛——软件设计师考试笔记

    在提供的文件内容中,我们可以看到考试笔记包含了多个考点的知识点,例如线性表、树与二叉树、数据结构与算法基础、排序算法、查找算法以及编译原理等。以下是对这些考点的详细解读: ### 线性表 线性表是最基本、...

    2008年软考程序员试题(含答案)

    【标题】"2008年软考程序员试题(含答案)"所涵盖的知识点主要集中在当年全国计算机技术与软件专业技术资格(水平)考试——程序员级别的考试内容上。这个标题表明了这是一份包含了实际考试题目及其对应解答的资料,...

    2012上半年软考网络工程师 上午试题

    ### 2012上半年软考网络工程师上午试题解析 #### 题目一:Cache存储器 **题目概述:** 本题考察的是计算机体系结构中的高速缓存(Cache)概念,具体涉及到Cache的主要功能以及地址映射机制。 **解析:** 在现代...

    软件设计师历年真题

    2. **数据结构与算法**:线性结构、树形结构、图结构等基础数据结构的理解及操作,排序、查找等基本算法的应用,这些是软件设计的基础。 3. **操作系统原理**:进程管理、内存管理、文件系统、设备管理等,是软件...

    软件设计师电子书 第五版.rar

    2. **数据结构与算法**:深入讨论线性结构、树形结构、图结构等基本数据结构,以及排序、查找等重要算法,如冒泡排序、快速排序、二分查找等,这些都是软件设计的基础。 3. **面向对象设计**:详述面向对象的基本...

Global site tag (gtag.js) - Google Analytics