//2018/5/23数据结构概述:预备知识模块一:线性结构连续存储[数组]离散结构[链表]线性结构的两种常见应用之一栈(堆栈)线性结构的两种常见应用之二队列专题:递归1
+100的和2
走迷宫模块二:非线性结构树图模块三:查找和排序折半查找排序:冒泡插入选择快速排序归并排序补录:Java中容器和数据结构相关知识Iterator接口Map哈希表严蔚敏---高一凡---黄国瑜//2018/5/24数据结构概述定义我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找或删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应操作叫做算法
特定的数据类型:个体如何保存特定的存储结构:个体与个体的关系如何保存数据结构=个体的存储+个体关系的存储算法(狭义)=对存储数据的操作算法:即解题的方法和步骤衡量算法的标准1
时间复杂度[重要]大概程序要执行的次数,而非执行的时间2
空间复杂度[重要]算法执行过程中大概所占用的最大内存3
健壮性数据结构的地位数据结构是软件中最核心的课程
程序=数据的存储+数据的操作+可以被计算机执行的语言预备知识:指针结构体动态内存的分配和释放指针:指针的重要性:表示一些复杂的数据结构快速的传送数据使函数返回一个以上的值能否直接访问硬件能够方便的使用数组和字符串是理解面向对象语言中引用的基础指针是C语言的灵魂定义地址内存单元的编号从0开始的非负整数范围0-FFFFFFFF【0到4G-1】注:无论一个变量有多大,其地址只用第一个字节的地址表示,均只占四个字节
指针指针就是地址地址就是指针指针变量就是存放内存单元地址的变量指针本质上就是一个操作受限的非负整数分类1、基本类型指针【略】基本概念inti=10;int*p=&i;//等价于in