当前位置:   article > 正文

数据结构 ——c++实现(知识点集合)_c++数据结构

c++数据结构

数据结构 ——c++实现(知识点集合)

某不知名学狗的复习记录,包含数据结构基本概念,线性表,栈、队列、递归,串、数组、广义表和树和森林内容整理。主要整理了知识点,代码较少。

第一章 绪论

1.1(算法+数据结构) = 程序

这个括号是体现面向对象的观点

1.2 数据结构的基本概念

数据结构的定义
数据,是信息的载体,是描述客观事物的数、字符、图形、图像、声音以及所有能输入计算机中并被计算机程序是别的和处理的符号的集合。

数据在特定的情况下可以是数字,或者是字符,数据对象就是数据的子集。例如一个特定的,解方程组的程序,它处理的是数据对象是整数和实数。无理数,复数也是数据对象,也就是数据的子集,但是在这个问题中,数据对象并不是他们。

数据的基本单位是数据元素,数据元素由若干数据项组成,数据项是最小单位。例如线性表由数组储存,每一个数组元素就可以称作一个数据元素。如果说我这个数组是int型,那么数据项就是一个integer。若是一个结构体数组,那么数据项就有多个。

数据结构不仅要描述数据,还要描述数据元素与数据元素之间的相互关系。 可分为2大类,也可分为4大类。
1. 线性结构,非线性结构
2. 集合,线性,树,图 数据逻辑结构指数据元素之间的逻辑关系。(以上所说的就是面向用户的逻辑结构) 数据结构(数据元素的表示和元素之间的关系)在计算机中的物理储存方式称为存储结构/物理结构。 算法设计基于逻辑结构,算法实现基于物理结构。
数据结构是数据元素的组织形式。

1.3算法性能与复杂度

1.3.1算法的定义 算法:一个用于实现某个特定任务的有穷指令集,这些指令规定里一个运算序列。具有以下特征
1. 输入性
2. 输出型
3. 确定性
4. 有穷性
5. 有效性

1.3.2 算法的性能标准

正确性
可用性
可读性
效率
健壮性

1.3.3算法复杂度

时间复杂度 循环嵌套 相乘 循环并列 相加
空间复杂度 空间复杂度,是算法所需的存储空间的量度。记作S(n) = O(f(n))。这里不是指程序本身所需要的存储空间,而是指解题过程中所需要的辅助空间。
算法效率的度量一般采用事前估计和后期测试两种方法。常采用事前估计。

第三章 线性表

顺序表 顺序表中任意两个逻辑相邻的数据元素在物理存储上也必然相邻。
顺序表的插入与删除的时间复杂度是On,删除也可以是O(1),就是把最后一个元素放到被删除的位置。
双向链表的删除就是把要删的节点的前驱节点的后指针指向要删的节点的后节点。 插入的时候,先把新节点挂上去,然后再进行前后处理。 静态链表
静态链表利用结构体数组作为链表的模拟,用下标作为指针。
head->next指向已经申请的空间头结点,avil指向第一个可利用的空间(没有存东西的节点)的指针。

第四章 栈、队列与递归

允许插入删除的地方叫栈顶,另外一端叫栈底。 top初值=-1。 注意pop和top函数的区别
一个是要pop要后退,一个是单单取元素。 入栈先++top,再

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/578824
推荐阅读
相关标签
  

闽ICP备14008679号