数据结构分类
2016-03-12 09:24
225 查看
数据元素相互之间的关系称为结构。有四类基本结构:集合、线性结构、树形结构、图状结构;
集合结构:除了同属于一种类型外,别无其它关系
线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插
入,删除操作.
树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、查找树等)
图形结构:元素之间存在多对多关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意
所谓的基本算法应该是指:
一、排序算法
1、有简单排序(包括冒泡排序、插入排序、选择排序)
2、快速排序,很常见的
3、堆排序,
4、归并排序,最稳定的,即没有太差的情况
二、搜索算法
最基础的有二分搜索算法,最常见的搜索算法,前提是序列已经有序
还有深度优先和广度有限搜索;及使用剪枝,A*,hash表等方法对其进行优化。
三、当然,对于基本数据结构,栈,队列,树。都有一些基本的操作
例如,栈的pop,push,队列的取队头,如队;以及这些数据结构的具体实现,使用连续的存储空间(数组),还是使用链表,两种具体存储方法下操作方式的具体实现也不一样。
还有树的操作,如先序遍历,中序遍历,后续遍历。
当然,这些只是一些基本的针对数据结构的算法。
而基本算法的思想应该有:
1、回溯
2、递归
3、贪心
4、动态规划
5、分治
有些数据结构教材没有涉及基础算法,lz可以另外找一些基础算法书看一下。有兴趣的可以上oj做题,呵呵。算法真的要学起来那是挺费劲。
集合结构:除了同属于一种类型外,别无其它关系
线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插
入,删除操作.
树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、查找树等)
图形结构:元素之间存在多对多关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意
所谓的基本算法应该是指:
一、排序算法
1、有简单排序(包括冒泡排序、插入排序、选择排序)
2、快速排序,很常见的
3、堆排序,
4、归并排序,最稳定的,即没有太差的情况
二、搜索算法
最基础的有二分搜索算法,最常见的搜索算法,前提是序列已经有序
还有深度优先和广度有限搜索;及使用剪枝,A*,hash表等方法对其进行优化。
三、当然,对于基本数据结构,栈,队列,树。都有一些基本的操作
例如,栈的pop,push,队列的取队头,如队;以及这些数据结构的具体实现,使用连续的存储空间(数组),还是使用链表,两种具体存储方法下操作方式的具体实现也不一样。
还有树的操作,如先序遍历,中序遍历,后续遍历。
当然,这些只是一些基本的针对数据结构的算法。
而基本算法的思想应该有:
1、回溯
2、递归
3、贪心
4、动态规划
5、分治
有些数据结构教材没有涉及基础算法,lz可以另外找一些基础算法书看一下。有兴趣的可以上oj做题,呵呵。算法真的要学起来那是挺费劲。
相关文章推荐
- 举例讲解Python中的list列表数据结构用法
- 数据结构学习
- 如何学好算法和数据结构之我见——51CTO名家访谈实录
- 《大话数据结构》学习记录1--第1,2章和第3章的顺序线性表
- 343D/Codeforces Round #200 (Div. 1) D. Water Tree dfs序+数据结构
- 数据结构习题集1
- 2015年大二上-数据结构-查找-2-(3)-B-树的基本操作
- Java_数据结构(哈希表简介)
- CSU 1690 期望DP + 数据结构
- linux内核数据结构之链表
- Codeforces 650D. Zip-line (动态LIS) (可持久化线段树 或 离线+树状数组)
- 位图数据结构
- vector与list区别
- 数据结构排序算法之堆排序
- 数据结构排序算法之堆排序
- 小蚂蚁学习数据结构(37)——交换排序
- 常用数据结构的一部分类
- 认识redis的数据结构
- Powerdesigner反向工程从Mysql数据库导出数据结构的ODBC配置
- 排序_算法_数据结构