![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构系列文章
张青山
这个作者很懒,什么都没留下…
展开
-
数据结构入门必知(一)
数据:信息的载体,客观事物的符号表示(数值型:数字;非数值型:文字、图片、图像、声音、视频)。 数据元素:不同的情况下,又称为元素、结点、顶点、记录;数据元素师数据的基本单位; 数据项:数据项数据不可分割的最小单位;一个数据元素可以由一个或多个数据项组成。 以某银行网上银行用户来说明数据、数据元素、数据项三者之间的关系原创 2012-06-03 19:16:12 · 772 阅读 · 4 评论 -
二叉树的链式存储和三种遍历(一)
//二叉树的链式存储, 先序输入,三种输出# include # include //树的结点元素类型typedef struct element { char data;//存放元素值 struct element *lchild,*rchild;//存放左右孩子结点的指针}*shu;//先序输入函数void shuru(shu &s)原创 2012-06-09 17:59:57 · 959 阅读 · 1 评论 -
数据结构入门必知(二)
为了让计算机更方便的为我们服务,我们需要把现实中的一切事物数据化,然后存放到计算机中,因为现实中的事物和事物之间存在的某种关系,所以我们要研究这些关系(在计算机世界存在的形式和在现实世纪中存在的形式),也就是我们要研究数据结构中的逻辑结构(现实世界中关系存在的几种方式)和物理结构(计算机世界中关系存在的几种方式),逻辑结构和物理结构都是纸上谈兵,真正的做为数据运算(算法)。原创 2012-06-03 21:37:19 · 798 阅读 · 2 评论 -
五大排序(二)
上接:五大排序(一) 5、冒泡排序所有数据分成两类,排好类和待排类,初始默认所有元素都是待排类,冒泡排序:按一定顺序(序号或小标从小到大),相邻之间的数据进行比较交换,例如:排序要求,数据从小到大排列,下标0和下标1里的数据进行比较,0中数据大于1中数据时(不大于时,不用交换,注意,此时仍是小标1里的值和后面的数据进行比较),两个数据进行交换,然后下标1里的数据再和下原创 2012-06-12 17:14:51 · 999 阅读 · 3 评论 -
五大排序(一)
排序的功能:用户提出要求,电脑根据用户要求把那些记录排列出来,给用户带来放方便。 排序的基本操作:1、比较关键字的大小;2、将记录从一个位置移动到另一个位置。理解“基本”一词。后面详讲关键字。 内部排序:要排序的数据都在内存中,称为内部排序。五大排序都是内部排序。 外部排序:要排序的数据一部分在内存上,一部分在外存上。需要清楚的时,C原创 2012-06-12 15:33:36 · 1135 阅读 · 7 评论 -
常见的三种查找
请观看图片: 顺序查找: 二分查找: 分块查找: 望多多留言指导!原创 2012-06-11 19:52:58 · 690 阅读 · 4 评论 -
无向图的链式存储(代码)
# include # include # define zhi 20//最都能存放结点的个数int diannum;//存放顶点的个数//存放顶点信息和跟该点有关系的下一个顶点的指针struct dian{ char data;//存放顶点的信息 struct bian *next;//存放边的地址};//存放顶点和顶点的关系的值s原创 2012-06-10 21:02:26 · 799 阅读 · 1 评论 -
无向图的顺序存储结构(代码)
大家必须理解图的概念,在这就不做介绍了。下面直接展示代码://无向图的顺序存储结构# include # include # define zhi 40//定义图的数据类型struct mygraphic{ char dian[zhi];//存放顶点的信息 int bian[zhi][zhi];//存放边的信息 int diannum;原创 2012-06-10 20:49:54 · 1631 阅读 · 2 评论 -
栈的顺序存储和链式存储以及应用
在这里首先补充一点,前面讲到的数据的四种逻辑结构,可以用物理存储的结构的任何一种都可以实现,要根据具体情况来选择。代码实现的大都是顺序存储和物理存储。 栈的思想:先进后出。关于栈的其他东西不讲了,下面展示栈的顺序存储代码的实现://栈的顺序实现# include # include //栈表头struct sqstack{ int * top;//原创 2012-06-09 16:09:16 · 1240 阅读 · 2 评论 -
队的顺序存储和链式存储
队的思想:先进先出。其他的东西不讲了,下面展示代码。 队顺序存储的实现:# include # include //宏定义# define CHUZHI 10//初始队的大小# define ZENGZHI 5 //为了不出现队溢出而出现 //队头的数据类型struct queue{ int * top;//存放队的尾 int原创 2012-06-09 17:11:51 · 26119 阅读 · 6 评论 -
线性结构的顺序存储和链式存储的实现代码(二)
单链表的简单代码及解释(头插法为例) 头插法的中心思想是:两个结点类型的指针变量,一个用来存放新开辟空间的地址,另一个用来存放,开辟的空间的首地址,这些开辟的空间的连接时通过这两个指针变量连接起来的。 尾插法的中心思想是:三个结点类型的指针变量,一个用来存放第一个开辟空间的地址(head指针),一个用来存放最后一个开辟空间的地址(相连接中的最后一个。tail指针),原创 2012-06-06 11:24:27 · 939 阅读 · 3 评论 -
线性结构的顺序存储和链式存储的实现代码(一)
线性结构的物理存储主要有两种方式:顺序存储和链式存储。线性结构中一个数据元素是没有什么意义的,所有的数据元素构成一个整体才有意义。为了对这个整体有一个大方为的管理,所以,我们应该建立关于这个整体的头,数据元素的类型另说。以后写关于数据结构的代码都是基于C++这门语言来实现。 线性结构的顺序存储方式的代码(C++的内容略)//加载的头文件# include# includ原创 2012-06-04 17:14:13 · 1426 阅读 · 2 评论 -
二叉树的顺序存储和三种遍历(二)
//二叉树的顺序存储,三种遍历的代码# include # include # define chuzhi 50 //初始一维数组的大小# define zengzhi 50 //一维数组的增量typedef struct //定义树的头结点的数据类型{ char *sz;//存放一维数组的头地址 int i;//存放一维数组的下标 int m原创 2012-06-09 17:42:11 · 2040 阅读 · 1 评论