数据结构概述
定义: 我们如何把现实中大量而复杂的问题以特定的数据类型 和特定的存储结构
保存到主存储器(内存)中 ,以此在基础上为 实现某个功能
(查找,删除某元素,对所有元素进行排序) 而执行的
相应操作也叫算法
数据结构 = 个体 + 个体关系
算法 = 对存储数据的操作
算法:
解题的方法和步骤
衡量算法的标准:
1.时间复杂度(大概程序要执行的次数,而非执行的时间)
2.空间复杂度(算法执行过程中大概所占用的最大内存)
3.难易程度
4.健壮性
数据结构的地位:
数据结构是软件中最核心课程
程序 = 数据的存储 +数据的操作 + 可以被计算机执行的语言
预备知识
指针
指针的重要性:
指针是c语言的灵魂
定义:地址(1内存单元的编号。
2 从0开始的非负整数. 3 范围 0--FFFFFFFF[4G-1])
指针:
指针就是地址,地址就是指针
指针变量:是存放内存单元地址的变量
指针的本质是一个操作受限的非负整数
分类:
1.基本类型的指针
2.指针和数组的关系
结构体
动态内存的分配和释放
模块一:线性结构
连续存储[数组]
离散存储[链表]
线性结构的两种常见应用之一 栈
线性结构的两种常见应用之二 队列
专题 : 递归
1. 1+2+3+4+5+........100的和
2. 求阶乘
3. 汉诺塔
4. 走迷宫
模块二: 非线性结构
树
图
模块三: 查找和排序
折半查找
排序:
冒泡
插入
选着
快速排序
java中容器和数据结构相关知识
Iterator接口
map
哈希表