数据结构与算法分析-线性表

线性表

考试内容

线性表的定义

线性表是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。

顺序表的定义及其特点

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素, 这种表示也称作线性表的顺序存储结构或顺序映像。通常,称这种存储结构的线性表为顺序表。

特点:逻辑上相邻的数据元素, 其物理次序也是相邻的。

链式表的定义及其特点

线性表链式存储结构的特点是:用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)

线性表的应用

线性表的应用
有序表的合并


考试要求

掌握线性表的逻辑结构,以及基本操作
掌握用顺序存储结构对线性表基本操作的实现
掌握链式存储结构的实现技术,比如单向链表、双向链表、单循环链表、双向循环链表以及带头节点的链表
掌握链式存储结构对线性表基本操作的实现
具有在实际中选取不同存储结构的判断能力

栈和队列

考试内容

栈和队列的定义

栈(stack) 是限定仅在表尾进行插入或删除操作的线性表

队列

队列(queue)是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素

顺序栈和链式栈的定义及其特点;

顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。

链栈是指采用链式存储结构实现的栈。

顺序队列和链式队列的定义及其特点;

和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队
列头到队列尾的元素之外,尚需附设两个整型变最front 和rear 分别指示队列头元素及队列尾元素
的位置

链队是指采用链式存储结构实现的队列,通常链队用单链表来表示。一个链队显然需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能唯一确定。

栈和队列的应用

考试要求

栈、队列的逻辑结构,以及基本操作
掌握顺序存储结构对栈和队列基本操作的实现
掌握链式存储结构对栈和队列基本操作的实现
掌握顺序存储结构中实现循环队列的具体要求

img

队空:SQ.front=SQ.rear

队满:(SQ.rear+1) %Maxsize=SQ.front

循环队列入队, 队尾循环后移: SQ->rear =(SQ->rear+1)%Maxsize;
循环队列出队, 队首循环后移: SQ->front =(SQ->front+1)%Maxsize;

理解递归调用和栈之间的关系

程序中的“函数调用栈”是栈数据结构的栈的一种应用。
函数调用栈一般是从高地址向低地址增长的:
栈底为内存的高地址
栈顶为内存的低地址

因为程序中的栈结构是顺序栈,因此,如果递归的次数过多,程序中的数据过大,在不断的压栈过程中造成栈空间耗尽而产生栈溢出

栈溢出常由于函数递归过深或局部数组过大造成

栈保存了一个函数调用所需的维护信息:

  • 函数参数,函数返回地址
  • 局部变量
  • 函数调用上下文
掌握栈和队列的经典应用

数值转换

当将一个十进制整数N转换为八进制数时,在计算过程中,把N与8求余得到的八进制数
的各位依次进栈,计算完毕后将栈中的八进制数依次出栈输出,输出结果就是待求得的八进制数

  • 初始化一个空栈S。

  • 当十进制数N非零时, 循环执行以下操作:

    把N 与8 求余得到的八进制数压入栈S

    N更新为N与8的商

  • 当栈S 非空时, 循环执行以下操作

    弹出栈顶元素e

    输出e

括号匹配的检验

检验算法借助一个栈,每当读入一个左括号,则直接入栈,等待相匹配的同类右括号;每当读入一个右括号,若与当前栈顶的左括号类型相同, 则二者匹配, 将栈顶的左括号出栈, 直到表达式扫描完毕。
在处理过程中, 还要考虑括号不匹配出错的情况。例如, 当出现(( )[ ]))这种情况时, 由于前面入栈的左括号均已和后面出现的右括号相匹配, 栈已空,因此最后扫描的右括号不能得到匹配;出现[([ ])这种错误,当表达式扫描结束时,栈中还有一个左括号没有匹配;出现(()] 这种错误显然是栈顶的左括号和最后的右括号不匹配。

  • 初始化一个空栈S。

  • 设置一标记性变量flag, 用来标记匹配结果以控制循环及返回结果,1表示正确匹配,0表示错误匹配,flag初值为1。

  • 扫描表达式,依次读入字符ch, 如果表达式没有扫描完毕或flag 非零, 则循环执行以下操作:

    • 若ch 是左括号"[" 或"("’ 则将其压入栈

    • 若ch 是右括号")"’ 则根据当前栈顶元素的值分情况考虑:若栈非空且栈顶元素是"(" ,
      则正确匹配, 否则错误匹配, flag 置为0

    • 若ch 是右括号"]"’ 则根据当前栈顶元素的值分情况考虑:若栈非空且栈顶元素是"["’,则正确匹配, 否则错误匹配, flag 置为0.

  • 退出循环后, 如果栈空且flag 值为1’ 则匹配成功, 返回true, 否则返回false

表达式求值

为实现算符优先算法,可以使用两个工作栈,一个称做OPTR,用以寄存运算符;另一个称
作OPND, 用以寄存操作数或运算结果。

  • 初始化OPTR栈和OPND栈,将表达式起始符"#"压入OPTR栈。
  • 扫描表达式,读入第一个字符ch, 如果表达式没有扫描完毕至"#“或OPTR的栈顶元素
    不为”#"时,则循环执行以下操作:
    • 若ch不是运算符,则压入OPND栈,读入下一字符ch;
    • 若ch是运算符,则根据OPTR的栈顶元素和ch的优先级比较结果,做不同的处理:
      • 若是小于,则ch压入OPTR栈,读入下一字符ch;
      • 若是大于,则弹出OPTR栈顶的运算符,从OPND栈弹出两个数, 进行相应运算,
        结果压入OPND栈;
      • 若是等于,则OPTR的栈顶元素是“(” 且ch是")"'这时弹出OPTR栈顶的“)” ,
        相当千括号匹配成功,然后读入下一字符ch
  • OPND栈顶元素即为表达式求值结果,返回此元素。
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 《数据结构与算法分析c语言版》是由王立柱编写的一本讲述数据结构算法的教材。这本教材主要介绍了数据结构算法的概念、原理和应用。本书适用于计算机科学、软件工程以及相关专业的学生和从事程序设计与开发工作的人员。 在教材中,王立柱首先介绍了数据结构的基本概念,如线性表、栈、队列、树、图等。他通过清晰的示意图和具体的代码示例,帮助读者理解不同数据结构之间的关系和特点。然后,他详细讲解了数据结构的基本操作,如插入、删除、查找等,以及不同数据结构的存储结构和实现方法。 在接下来的章节中,王立柱详细讲解了常用的算法,如排序、查找、图算法等。他通过逐步推导和举例,帮助读者理解这些算法的原理和实现过程。同时,他还提供了大量的习题和编程实践,让读者能够通过实际操作来巩固所学知识。 此外,王立柱还介绍了数据结构算法的应用领域,如数据库、网络通信、人工智能等。他通过实际案例,展示了数据结构算法在实际问题中的作用和价值。 总的来说,《数据结构与算法分析c语言版》是一本通俗易懂、内容全面的教材。它既具备理论性,又注重实践操作,使读者能够系统地学习和掌握数据结构算法的知识。无论是作为教材还是作为参考书,都是计算机领域学习者的一本不可或缺的好书。 ### 回答2: 数据结构与算法分析是计算机科学领域中的重要概念,它们对于计算机程序的设计和优化起着关键作用。根据题目所给的信息“c 王立柱pdf”,我们可以猜测这是一本关于数据结构与算法分析的书籍,由王立柱所著,格式为PDF。 数据结构是指组织和存储数据的方式,它关注如何以最有效的方式操作和访问数据。算法分析则是评估算法的效率和性能,以便确定最佳算法数据结构。 《数据结构与算法分析》这本书可能是王立柱教授编写的教材或学术著作,通过这本书,读者将学习到各种数据结构算法的基本知识、原理和实际应用。这些内容对于计算机科学专业的学生、软件工程师和其他相关领域的专业人员来说都非常重要。 作为一本PDF格式的书籍,读者可以通过电子设备或计算机随时随地访问和阅读。这种格式不仅节约了纸张资源,还便于进行搜索和书签功能的使用,提高了学习的效率和便捷性。 总之,这本书《数据结构与算法分析》c 王立柱pdf通过系统地介绍和分析数据结构与算法相关的知识,对于读者来说是一本富有参考价值和实用性的书籍。读者可以通过学习和掌握其中的内容,提升自己在计算机科学领域的能力和竞争力。 ### 回答3: 数据结构与算法分析 c 王立柱pdf是一本介绍数据结构算法分析的教材。该教材以C语言作为学习和实现的基础,通过对不同数据结构算法的介绍和分析,帮助读者理解和掌握数据结构算法的基本概念、原理和应用。 数据结构是计算机存储、组织数据的方式,而算法则是处理这些数据的方法。数据结构算法在计算机科学中扮演着重要的角色,它们的选择和应用直接影响着程序的性能和效率。 该教材首先介绍了一些数据结构的基本概念,如数组、链表、栈、队列等。然后,通过对这些数据结构的实现和分析,引导读者理解数据结构的基本操作和特性,并学会在实际应用中选择合适的数据结构。 随后,该教材详细介绍了一些常用的算法,如排序、查找和图算法等。通过对这些算法的原理和实现的讲解,读者可以学习到如何设计和分析高效的算法,并了解它们在不同场景下的应用。 总之,数据结构与算法分析 c 王立柱pdf是一本全面介绍数据结构算法的教材。通过学习该教材,读者可以建立对数据结构算法的深入理解,并应用于实际开发中,提高程序的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

996大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值