数据类型与数据结构

先说数据结构(data structure)。一般来说数据结构指的都是结构化的东西,也就是说若干elements(这个词不好翻译,可以认为是基本元素)按照一定结构组成的。如数组,链表。可以看出这两种都是由基本元素组成,而且形成一定结构(数组是物理内存连续,链表是用指针相连)。而组成的elements可以是复杂结构,如一个结构体组成的数组,或者有嵌套结构的elements。

数据类型(data type)强调类型,一般分为两种,基本数据类型(int char等)和复杂数据类型(结构体等)。基本结构对应基本数据类型(如一个字符对应char型),复杂结构对应复杂数据类型(结构体)。这个概念是可以对应上面数据结构中的elements的类型。

想总结一下,数据放在elements中,每个elements一般都是线性地址相连的存储,elements的类型叫数据类型,由elements组成的更复杂的结构叫做数据结构。

理解这两个概念必须从数据入手,数据可以认为是在线性内存中连续存储的一段信息,这段信息在内存中不过就是不加区分的01串而已。而数据类型是让编程者和编译器识别这段数据表达方式的一种定义。数据结构是将数据用某种方式组合起来的一种结构。所以数据才是核心。
C++数据类型
本机:win32

cout<<sizeof(short)<<" "<<sizeof(int)<<" "<<sizeof(long)<<" "<<sizeof(long long)<<endl;
cout<<sizeof(void)<<" "<<sizeof(bool)<<" "<<sizeof(char)<<" "<<sizeof(wchar_t)<<endl;
cout<<sizeof(float)<<" "<<sizeof(double)<<" "<<sizeof(long double)<<endl;

C++ 常用数据结构

数组 (Array)

  在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

栈 (Stack)

  是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

队列 (Queue)

  一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。

链表 (Linked List)

  是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

树 (Tree)

  是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:

 

  (1)有且仅有一个结点 K0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。 (2)除K0外,K中的每个结点,对于关系N来说有且仅有一个前驱。

 

  (3)K中各结点,对关系N来说可以有m个后继(m>=0)。

图 (Graph)

  图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

堆 (Heap)

  在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

散列表 (Hash)

  若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表

来自:http://www.zhihu.com/question/21165020/answer/19462086
http://c.biancheng.net/cpp/biancheng/view/103.html
http://blog.csdn.net/longhuahaha/article/details/8477290

posted on 2016-08-30 10:01  羽溪夜  阅读(3267)  评论(0编辑  收藏  举报

导航