数据结构概述
定义:
我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的的相应操作,这个相应的操作也叫算法
数据结构=个体+个体的关系
算法=对存储数据的操作
算法:
解题的方法和步骤
衡量算法的标准
1、时间复杂度
大概程度要执行的次数,而非执行时间
2、空间复杂度
算法执行过程中大概占用最大的内存
3、难易程度
4、健壮性
数据结构的地位:
数据结构是软件中最核心的课程
程序:数据的存储+数据的操作+可以被计算机执行的语言
预备知识:
指针:
指针的重要性
指针是C语言的灵魂
定义
地址:内存单元编号,从0开始的非负整数范围:0-FFFFFFFF
指针:指针就是地址 地址就是指针,指针变量是存放内存单元地址的变量,指针的本质是一个操作受限的非负整数
分类:
1、基本类型指针
2、指针和数组的关系
补充知识:cpu通过三根总线(地址总线、控制总线、数据总线)与内存进行交互,地址总线负责寻找到所在的内存地址;控制总线负责读还是写,还是只读或是只写;数据线是负责数据传输,到底是cpu读数据还是从内存中取数据到cpu。
#include<studio.h> int main(void) { }
结构体
动态内存的分配和释放
模块一:线性结构
连续存储[数组]
离散存储[队列]
线性结构的两种常见应用之一:栈
线性结构的两种常见应用之二:队列
模块二:非线性结构
树
图
模块三:查找和排序
冒泡
插入
选择
快速
归并排序
Java中容器和数据结构的相关知识
Iterator接口
Map
哈希表
未完待完善...