第一章 概论

数据结构的概念

  1. 算法+数据结构=程序。
  2. 数据结构分为书数据的逻辑结构和存储结构,算法是对数据运算的描述。

数据结构的意义

  1. 研究非数值程序设计中,计算机的操作对象以及他们的关系和操作。
  2. 提高计算机运行效率

何为数据?

  1. 是描述客观事物的符号的集合。

数据元素

  1. 数据元素是数据的基本单位, 可由一个或若干个数据项组成,数据项是最小的标识单位

数据对象

  1. 数据的子集,相同性质的数据元素的集合

数据的结构:逻辑结构

数据元素之间的逻辑关系 分为线性结构和非线性结构
线性结构:
一对一关系
有且只有一个开始结点和终端结点,其余结点有且只有一个前趋结点和后继结点
非线性结构
一对多,或多对多关系
一个结点有多个前趋结点和后继结点

数据的结构:存储结构(物理结构)

数据元素及其关系的在计算机内的存储关系
1.顺序存储
把逻辑上相邻的结点存储在物理位置也相邻的连续存储单元里。主要应用与线性数据结构
2.链接存储
用一组不一定连续的存储单元,去存储逻辑上相邻的元素,元素的逻辑关系用附加的指针域表示。链式存储结构
3.索引存储
建立附加的索引表,其形式为(关键字,地址),关键字是唯一能标识一个元素的一个或多个数据项的组合
4.散列存储
根据关键字直接计算出该元素的存储地址

数据的结构:数据的运算

对数据进行操作,索引,插入,删除,更新,排序等

算法的描述和分析

算法描述:
算法是对问题求解步骤的描述
算法的五个原则

  1. 输入:算法开始前需要给变量初始化
  2. 输出:至少一个或多个输出
  3. 有穷性:指令的执行次数是有限的
  4. 确定性:指令的含义必须明确
  5. 可行性:算法所描述的操作,可以通过有限次的基本运算来实现

算法分析
1.时间复杂度:算法执行所消耗的时间
2.空间复杂度:算法执行所消耗的存储空间
3.可读性和可操作性:算法应易于理解,编程,调试等
频度与时间复杂度
算法所耗费的时间是每条语句执行时间之和,每条语句的执行时间是该语句的执行次数与执行一次的时间的乘积

算法的时间复杂度记为:T(n) = O( f(n) ) ,f(n)是算法中语句的总执行次数
执行次数为常数的算法记为:T(n) = O(1)

第二章 线性表

线性表是由有限个数据元素组成的序列

线性表:顺序存储结构

线性表的顺序存储结构和基本运算
线性表的第i个元素ai的存储位置为:
LOC(ai) = LOC(a1)+(i-1)*d; ps:d为每个元素占用的空间大小
插入运算
将线性表变成n+1的线性表
需要移动的个数:n-(i-1);
删除运算
将线性表变成n-1的线性表
需要移动的个数n-i;

线性表:单链表

数据域:data
指针域:next
空链表:head=NULL

线性表有两种存储结构:

  1. 顺序存储结构(顺序表)
  2. 链式存储结构(链表)

…未完待续

02331 数据结构 学习小记 归纳总结相关推荐

  1. 考研[*数据结构*]学习笔记汇总(全)

    文章目录: 一:预备阶段 二:基础阶段笔记 三:冲刺阶段笔记 四:各章节思维导图 五:题库 来源:王道计算机考研 数据结构 一:预备阶段 之前的数据结构笔记 数据结构--学习笔记--入门必看[建议收藏 ...

  2. (2012.01.12-2012.04.01)八十二天的学习小记

    (2012.01.12-2012.04.01)八十二天的学习小记   哈哈,原来又是过了八十二个日子了,真快啊~这次发的学习小记日期记录时间有点长,回看1月份的东西,原来已经隔了八十多个日子了,对于这 ...

  3. (2013.01.18-2013.07.15)179天的学习小记

    (2013.01.18-2013.07.15)179天的学习小记 好久没有做个小小结咯,我的第一天学习小记是从2011.07.04开始,那时说好了在大学期间要每天记录,自我监督,就这样,这事也干了两年 ...

  4. 数据结构学习系列文章合集

    数据结构学习系列文章目录 前言 1.稀疏数组和队列 稀疏数组和二位数组的转换 数组队列的实现 环形队列的介绍与实现 2.链表 单链表的增.删.改.查 总结 前言 学习数据结构记录,作为自己的笔记,同时 ...

  5. 8086汇编学习小记-王爽汇编语言实验12

    8086汇编学习小记-王爽汇编语言实验12 0号中断处理程序,开始安装在0000:0200处的程序最后用死循环导致显示不出'divided error',改成直接退出就正常显示了.注意修改ss,sp之 ...

  6. 【杂谈】野生在左 科班在右——数据结构学习誓师贴

    [杂谈]野生在左 科班在右--数据结构学习誓师贴 一. 科班 Vs 野生 这个老生常谈的问题让很多野生码农觉得不公平,在一次次面试中因为学历和那些工作中根本就用不到的知识虐的一脸懵逼,然后除了抱怨什么 ...

  7. js 正则学习小记之匹配字符串

    原文:js 正则学习小记之匹配字符串 今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高 ...

  8. C语言数据结构学习用单元测试

    药物名称: C语言数据结构学习用单元测试 主治: 本品是基于CUnit编写的.全部的.纯C的数据结构(ADT)各种实现的单元测试.主治基础不牢,水品增长缓慢.建议配合严蔚敏<数据结构>(C ...

  9. 多项式快速插值学习小记

    今天终于抽空把这个综(du)合(liu)知识点学了,心力交瘁-- 多项式快速插值 给出 nnn 个点 (xi,yi)(x_i,y_i)(xi​,yi​) ,要求一个次数为 n−1n-1n−1 的多项式 ...

最新文章

  1. 一天一个Java基础——对象和类
  2. 启示录:打造用户喜爱的产品【PDF清晰版】,产品经理必看书籍之一
  3. 791. Custom Sort String
  4. GRE核心词汇助记与精练-List10感觉,感情
  5. [剑指offer][JAVA]面试题第[11]题[旋转数组的最小数字][二分法][分治]
  6. E20180327-hm
  7. 阿里安全十余年发展的关键词:敬畏、努力
  8. 计算机考研单科成绩要求,考研单科分数是多少
  9. python自学-学习Python,从入门到精通,其实只需要两个月就够了
  10. 【练习8.7】cvGoodFeaturesToTrack确定图像强角点、cvFindCornerSubPix亚像素级角点检测...
  11. Https之SSL原理
  12. SSM+Redis简介
  13. 循环buffer的实现_Go语言源码阅读之bytes.Buffer
  14. java后端使用freemarker生成echarts图表word
  15. win10动态桌面_win10动态桌面如何设置?电脑炫酷动态壁纸
  16. 如何用微pe+msdn进行纯净重装Windows系统
  17. ApacheCN 翻译活动进度公告 2019.5.31
  18. 阴阳师服务器维护2月20,《阴阳师》手游2月20日维护更新公告
  19. php是世界上最好的语言吗
  20. KMPlayer使用方法

热门文章

  1. 用srand时间数种子来生成随机数
  2. 【今日CV 视觉论文速览】20 Nov 2018
  3. Microduino中LM75温度传感器的使用
  4. 单元测试Junit 测试类与测试方法 java
  5. 0309随堂笔记 银行转帐功能 对向封装 1615278206
  6. css定位小结 1216
  7. 01 菜单栏和工具栏(一)
  8. 爬虫 动态生成useragent的功能 fake-useragent库
  9. jquery-样式修改-位置的方法-标签的宽高数据
  10. 【学习Android NDK开发】Java通过JNI调用native方法