数据元素相互之间的关系称为结构。有四类基本结构:集合、线性结构、树形结构、图状结构;
集合结构:除了同属于一种类型外,别无其它关系
线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插
入,删除操作.
树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、查找树等)
图形结构:元素之间存在多对多关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意
所谓的基本算法应该是指:
一、排序算法
1、有简单排序(包括冒泡排序、插入排序、选择排序)
2、快速排序,很常见的
3、堆排序,
4、归并排序,最稳定的,即没有太差的情况
二、搜索算法
最基础的有二分搜索算法,最常见的搜索算法,前提是序列已经有序
还有深度优先和广度有限搜索;及使用剪枝,A*,hash表等方法对其进行优化。
三、当然,对于基本数据结构,栈,队列,树。都有一些基本的操作
例如,栈的pop,push,队列的取队头,如队;以及这些数据结构的具体实现,使用连续的存储空间(数组),还是使用链表,两种具体存储方法下操作方式的具体实现也不一样。
还有树的操作,如先序遍历,中序遍历,后续遍历。
当然,这些只是一些基本的针对数据结构的算法。
而基本算法的思想应该有:
1、回溯
2、递归
3、贪心
4、动态规划
5、分治
有些数据结构教材没有涉及基础算法,lz可以另外找一些基础算法书看一下。有兴趣的可以上oj做题,呵呵。算法真的要学起来那是挺费劲。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。