数据结构 笔记1 概览

线性结构

 1.数据元素之间满足唯一的线性关系。

2.每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继。

  线性表 (顺序表,链表,栈,队列)

    1.最简单和最常用的一种数据结构

    2.由n个数据元素(结点)组成的有限序列

    顺序表

      1.线性表的数据元素按逻辑次序依次存入一组地址真实的存储单位。

    链表 (单向链表,双向链表,循环链表)

      1.线性表的数据元素除了存储自身的信息以外,还需要一个存储指示器后继元素,存储位置的指针。

      2.一个结点的存储结构为data|next,n个结点链成一个链表。

    栈 (Stack)

      1.限定在表的一端进行插入和删除运算的线性表

      2.遵循后进先出(Last In First Out)原则

    队列 (Quene)

     按存储方式划分:顺序队列,链队列,环形队列

      1.只允许在表的一端进行元素插入,而在另一端进行元素删除

      2.遵循先进先出(First In First Out)原则

 

非线性结构

  树形结构

    1.数据元素之间有着明显的层次关系,并且每个元素只与上一层中的一个元素(双亲结点)及下层中的多个元素(孩子结点)相关

    二叉树 (二叉树,满二叉树,完全二叉树,最优二叉树)

    按存储方式划分:顺序存储结构,链式存储结构

    1.每个结点至多只有两个孩子,而其子树有左右之分的有序树。

    2.符合三大性质(具体后续文章说明)

  

  图型结构 (graph)

    遍历方式:深度优先搜索遍历,广度优先搜索遍历

    存储结构:邻接矩阵表示法,邻接表表示法

    1.结点之间的关系是任意的。

    2.特殊的树形结构

  

  多维数组

   按内存表现形式划分: 行向量,列向量

    1.线性表的推广

    2.由于计算机的内存结构是一唯的,所以二位数据使用行向量或列向量表示

  广义表

    结点数据结构: tag|data/slink|link

    tag: 用来区分当前结点是原子还是子表

    data/slink 存放原子数据 或者 子表地址

    link 存放下一个元素对应的结点的地址

    1.带有层次的非线性结构

    2.通常使用链式存储结构

    3.每个结点由三个域构成,其中tag是一个标志位,用来区分当前结点是原子还是子表。

    

  

  

时间: 2024-08-10 16:58:55

数据结构 笔记1 概览的相关文章

42. 蛤蟆的数据结构笔记之四十二图的遍历之广度优先

42. 蛤蟆的数据结构笔记之四十二图的遍历之广度优先 本篇名言:"生活真象这杯浓酒 ,不经三番五次的提炼呵 , 就不会这样一来可口 ! -- 郭小川" 继续看下广度优先的遍历,上篇我们看了深度遍历是每次一个节点的链表是走到底的. 欢迎转载,转载请标明出处:http://write.blog.csdn.net/postedit/47029275 1.  原理 首先,从图的某个顶点v0出发,访问了v0之后,依次访问与v0相邻的未被访问的顶点,然后分别从这些顶点出发,广度优先遍历,直至所有的

48. 蛤蟆的数据结构笔记之四十八的有向无环图的应用关键路径

48. 蛤蟆的数据结构笔记之四十八的有向无环图的应用关键路径 本篇名言:"富贵不淫贫贱乐 ,男儿到此是豪雄.-- 程颢" 这次来看下有向无环图的另一个应用关键路径. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135061 1.  关键路径 与AOV-网相对应的是AOE-网(Activity On Edge)即边表示活动的网.AOE-网是一个带权的有向无环图,其中,顶点表示事件(Event),弧表示活动,权表

49. 蛤蟆的数据结构笔记之四十九图的连通性问题

49. 蛤蟆的数据结构笔记之四十九图的连通性问题 本篇名言:"我们不得不饮食.睡眠.游惰.恋爱,也就是说,我们不得不接触生活中最甜蜜的事情:不过我们必须不屈服于这些事物 .....--约里奥?居里"     此篇就作为数据结构入门笔记的最后一篇吧. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47135259 设图G=(V,E)是一个无向图,G的一个连通分支是一个最大的连通子图,即一个连通分支是不包含在任何更大的

46. 蛤蟆的数据结构笔记之四十六普里姆算法

46. 蛤蟆的数据结构笔记之四十六普里姆算法 本篇名言:"手莫伸 ,伸手必被捉.党与人民在监督 ,万目睽睽难逃脱.汝言惧捉手不伸 ,他道不伸能自觉 , 其实想伸不敢伸 ,人民咫尺手自缩.-- 陈毅" 连通图的生成树是一个极小的连通子图,它含有图中全部的顶点,但只有足以构成一棵树的n-1条边.所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值的和最小.构造连通网的最小代价生成树,即最小生成树(Minimum Cost Spanning Tree). 找连通图的最

44. 蛤蟆的数据结构笔记之四十四弗洛伊德Floyd算法

44. 蛤蟆的数据结构笔记之四十四弗洛伊德Floyd算法 本篇名言:"希望是厄运的忠实的姐妹. --普希金" 我们继续来看下数据结构图中的一个算法,这个算法来自图灵奖得主. 1.  Floyd算法介绍 Floyd算法又称为插点法,是一种用于寻找给定的加权图中多源点之间最短路径的算法.该算法名称以创始人之一.1978年图灵奖获得者.斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名.注意这个可不是心理学的那个弗洛伊德. 是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径

41 蛤蟆的数据结构笔记之四十一图的遍历之深度优先

41  蛤蟆的数据结构笔记之四十一图的遍历之深度优先 本篇名言:"对于我来说 , 生命的意义在于设身处地替人着想 , 忧他人之忧 , 乐他人之乐. -- 爱因斯坦" 上篇我们实现了图的邻接多重表表示图,以及深度遍历和广度遍历的代码,这次我们先来看下图的深度遍历. 欢迎转载,转载请标明出处: 1.  原理 图遍历又称图的遍历,属于数据结构中的内容.指的是从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次.图的遍历操作和树的遍历操作功能相似.图的遍历是图的一种基本操作,图的许多其它

33. 蛤蟆的数据结构笔记之三十三广义表实现二

33. 蛤蟆的数据结构笔记之三十三广义表实现二 本篇名言:" 希望是附丽于存在的,有存在,便有希望,有希望,便是光明.--鲁迅" 我们继续来看下广义表的其他代码实现.代码均来自网络,解释来自蛤蟆,均亲测可行. 欢迎转载,转载请标明出处: 1.  广义表实现二 1.1         main 创建两个链表的指针head和L. 输入一个字符串,调用GLCreate函数创建广义表.显示,获取头表,尾表,输出长度,深度,原子个数,复制列表,Merge列表,遍历,比较广义表操作. 如下图1:

34. 蛤蟆的数据结构笔记之三十四树的概念

34. 蛤蟆的数据结构笔记之三十四树的概念 本篇名言:"过去属于死神,未来属于你自己.--雪莱" 本篇笔记开始我们要进入新的概念了,树!是不是有点小激动呢?让我们从概念开始吧 当然概念要理解,如果当前不能立刻理解,可以后续结合代码一起理解效果更佳. 1.  树型结构 之前我们学习的那么多,其实都是线性数据结构. 树 则不同,它是非线性结构. 树形结构指的是数据元素之间存在着"一对多"的树形关系的数据结构,是一类重要的非线性数据结构.在树形结构中,树根结点没有前驱结点

C语言、数据结构笔记集合

链表中的“p->next” p->next到底是指p的下一个节点还是p的指针域呢?p是一个指针,那么p->next也应该是一个指针,即p->next应该是一个地址,因此p->next其实是p指向的节点的指针域(next域),所以p->next还是属于当前节点的,只不过它是下一个节点的地址罢了.所以如果函数返回“p->next”,那么函数的类型应为指针函数. 如何让VS2013进行C编程的时候使用基本库函数不会得到警告 把VS项目创建中的安全周期检查关闭就可以任意使