论数据结构与ACM的关系
来源:互联网 发布:关于tensorflow社区 编辑:程序博客网 时间:2024/06/09 16:03
数据结构 :
首先,数据结构是一门计算机语言学的基础学科,它不属于任何一门语言,其体现的是几乎所有标准语言的算法的思想。
上面的概念有一些模糊,我们现在来具体说一说,相信你门的数据结构使用的是一门具体的语言比如C/C++语言来说明,那是为了辅助的学习数据结构,而数据结构本身不属于任何语言(相信你把书上的程序敲到电脑里面是不能通过的吧,其只是描述了过程,要调试程序,还需要修改和增加一些东西)。你们的书上开始应该在讲究数据的物理存储结构/逻辑存储结构等概念,说明数据结构首先就是“数据的结构”,在内存上的存储方式,就是物理的存储结构,在程序使用人员的思想上它是逻辑的。
我认为任何数据结构都可以从线性表演进而来。以顺序表为例,最简单的顺序表是无序的,那么增加一个要求,使其是有序的,那么只需要改动一下插入操作。
依理类推,堆栈和队列,只需要改动插入和删除操作,即可。你看科研论文或实际项目,也是有一个较简单的数据结构,演变而来。
串:在线性表的基础上,增加了子串的操作,变动大一些,有回溯过程。
数组,结构稍有变动,操作也是增加得多一些,例如:回文。
树:结构改得较大,有分支了。性质也多一些。最基本的操作方法,是查询。
图:当然最复杂。各种需求。
因此:
线性表---->树---->图。这是一种演进路径。
线性表--->堆栈、队列、串--->数组--->各种线性表;
二叉树--->各种二叉树---->B树、B+树---->红黑树;
数据结构的本质就在于:如何将现实世界中各种各样的数据放入到内存中,并且如何在内存中操作这些数据,如何评价这些存储方案和操作方法。
ACM中的数据结构本质在于,使用普通数据结构进行进一步延伸而得到的高级算法解决具体问题:
常用的数据结构有:
集合结构--->并查集
线性结构--->数组--->栈,队列,双端队列
树状结构--->二叉树,BST--->AVL树,splay树,Treap,Cartesian Tree,Size Balance Tree
图状结构--->邻接矩,阵邻接表,十字链表,邻接多重表
堆形结构--->二叉堆--->左偏堆,斜堆
数学结构--->哈希表
统计结构--->树状数组,线段树
字符结构--->前缀树,后缀树,后缀数组
程序=算法+数据结构,然而一部分算法是基于数据结构上的数据处理。
- 论数据结构与ACM的关系
- 数据结构与算法的关系
- ACM与追MM之间的关系
- stl容器的实现原理-与数据结构的对应关系
- 了解内存与数据结构的关系(一)。..
- 了解内存与数据结构的关系(二)。。。
- 最小值 ACM 数据结构的使用
- ACM常用数据结构小结与实现
- ACM常用数据结构小结与实现
- 算法和数据结构的关系
- 数据结构和算法的关系
- acm sdut 数据结构实验之二叉树的建立与遍历
- API与C#数据结构类型对应关系
- 【Java数据结构基础】对象与指针关系
- ACM/lCPC要求的数据结构知识点
- 关系数据结构
- 论ACM与泡妞
- 论ACM与泡妞
- Java开发环境配置(一)
- Eclipse中打开项目中引用的jar包在硬盘上的路径(目录)
- fabric1.0中API与底层的交互
- 实现九九乘法表
- SSM综合项目实战(TTSC) -- day07 RESTful,HttpClient,单点登录
- 论数据结构与ACM的关系
- Ubuntu常见问题解决方案
- Unable to add module to the current project as it is not of packaging type 'pom'
- const的用法,特别是用在函数前面与后面的区别!
- Linux Makefile 学习
- 实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)
- Unix-Linux编程实践教程——第九章
- CPU和GPU的关系
- Oracle之索引三大特征