Day1 数据结构
Title: 数据结构 for C
数据结构概述:
定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存
到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素
,删除某个元素,对所有元素进行排序)而执行的相应的操作,这个相应的操
作也叫算法
数据结构=个体+个体的关系
算法=对存储数据的操作
算法:解题的方法和步骤
衡量算法的标准
1、时间复杂度————大概程序要执行的次数,而非执行的时间
2、空间复杂度————算法执行过程中大概所占用的最大内存
3、难易程度
4、健壮性
数据结构的地位:数据结构是软件中最核心的课程
程序=数据的存储+数据的操作+可以被计算机执行的语言
预备知识
指针
指针是C语言的灵魂
定义:
地址
内存单元的编号
结构体
动态内存的分配和释放
模块一:线性结构
连续结构[数组]
离散存储[链表]
线性结构的两种常见应用之一 栈
线性结构的两种常见应用之二 队列
专题:递归
C的递归函数若无基准情况,也是毫无意义的,首先处理基准情况,然后再执行
的递归调用。(注意循环调用和递归调用的区别)
1、1+2+3+4+...+100的和
2、求阶乘
3、汉诺塔
4、走迷宫
模块二: 非线性结构
树
图
模块三: 查找与排序
折半查找
排序:
冒泡
插入
选择
快速排序
归并排序
Java中容器中与数据结构相关知识
Iterator接口
Map
哈希表