您的位置:首页 > 理论基础 > 数据结构算法

数据结构小结(做一道题之前先想一下数据结构设计,然后向solve方法设计(bfs,dfs))

2016-09-24 04:42 330 查看
到目前为止学习的数据结构包括

1.数组保存数据(vector)建立二叉树,图,链表

2.struct结构体结构指针构图,打包对象属性(int)作为映射的对象

3.vector保存顺序,分配编号,保存输出,建立图

4.set查重,排序

5.map映射

6.queue队列先进先出整理队列(deque双端队列插入方便和迭代访问,primary_queue优先队列自定义排序方式)

7.stack栈后进先出分析表达式

8.链表顺序结构移动元素问题不能模拟要先预处理(单向链表和双向链表,双向链表和树状数组有不同,双向链表的起点不同,二树状数组起点为根节点)

9.二叉树(结构指针和树状数组)的递归构建、深搜dfs、广搜bfs最短路径权重问题,非二叉树问题四分树和多叉树

10.图的dfs求连通块、bfs球最短路、有向图DAG的拓扑排序、无向图有向图的欧拉回路

11,传说中的解答树,实质上并没有数据结构,只是一个递归迭代过程中抽象的一个排列树,确切的说是solve方法设计产生的一种树形结构思路(Uva129)

数据结构部分倾向于先建立数据结构再计算,其中,前七种构造很简单,后三种需要额外的构造程序来构造,一般是递归构造,有点难度

之后用到的就比如bfs,dfs之类的了倾向于算法设计

总之,做一道题之前先想一下数据结构设计,然后向solve方法设计(bfs,dfs),当然有一些题比如说 Uva看图写树 那个图不需要构造多叉树就可以在原图上dfs实现了,所以在准备构造复杂的树状和图结构的时候想一想是不是必须的,是不是可以直接dfs或者bfs实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: