数据结构及基本算法简介

来源:互联网 发布:元素周期表记忆软件 编辑:程序博客网 时间:2024/05/21 09:27

数据元素相互之间的关系称为结构。
数据结构:数据之间相互存在的一种或多种特定的关系的元素的集合

逻辑结构:1.树形结构 2.线性结构 3.图状结构 4.集合

集合结构:除了同属于一种类型外,别无其它关系

线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插入,删除操作.

树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、查找树等)
图形结构:元素之间存在多对多关系,图形结构中每个结点的前驱结点数和后续结点多个数可以任意

物理结构(存储结构):1.顺序存储结构 2.链式存储结构

数据类型:一组性质相同的值的集合及定义在此集合上的一些操作的总称
抽象数据类型:一个数字模型及定义在该模型上的一组操作

基本算法应该是指:
一、排序算法
1、有简单排序(包括冒泡排序、插入排序、选择排序)
2、快速排序,很常见
3、堆排序
4、归并排序,最稳定的,即没有太差的情况

二、搜索算法
最基础的有二分搜索算法,最常见的搜索算法,前提是序列已经有序;
还有深度优先和广度有限搜索,及使用剪枝,A*,hash表等方法对其进行优化。

三、当然,对于基本数据结构,栈,队列,树。都有一些基本的操作

例如,栈的pop,push,队列的取队头,入队;以及这些数据结构的具体实现,使用连续的存储空间(数组),还是使用链表,两种具体存储方法下操作方式的具体实现也不一样。
还有树的操作,如先序遍历,中序遍历,后续遍历。
当然,这些只是一些基本的针对数据结构的算法。

基本算法的思想应该有:

1、回溯
2、递归
3、贪心
4、动态规划
5、分治