顺序结构与链式结构

摘抄自,严蔚敏<算法与数据结构>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。

元素之间的关系在计算机中有两种不同的表示方法:顺序表示和非顺序表示。由此得出两种不同的存储结构:顺序存储结构和链式存储结构。

顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。

链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer ),用该指针来表示数据元素之间的逻辑结构(关系)。

例:设有数据集合A={3.0,2.3,5.0,-8.5,11.0} ,两种不同的存储结构。

顺序结构:数据元素存放的地址是连续的;

链式结构:数据元素存放的地址是否连续没有要求。

数据的逻辑结构和物理结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。

在C语言中,用一维数组表示顺序存储结构;用结构体类型表示链式存储结构。

时间: 2024-10-12 09:36:26

顺序结构与链式结构的相关文章

栈和队列分别的顺序结构和链式结构

栈和队列 栈和队列本身作为特殊的线性表,要记住他俩本身就费劲.难受的是他俩还能分别考虑顺序结构和链式结构,很复杂,容易混淆. 其实比起FILO(先进后出)和FIFO(先进先出)等特点,更重要的是对指针的把握.进出顺序是在逻辑层面的,只要理解就行,难得是如何用指针来表示这种特点,于是我就此方面进行个总结. 顺序栈 虽然栈只需要对一段进行操作(栈顶),但我们除了栈顶指针(top)外,还需要设置栈底指针(base),主要是为了用于判断栈空栈满. s.top == s.base; //当栈顶指针等于栈底

二叉树顺序结构实现/链式结构实现

程杰<大话数据结构>这部分的源码乱起八糟的.自己总结下: 顺序结构: #include "stdafx.h" #include "string.h" #include "stdio.h" #include "stdlib.h" #include <iostream> using namespace std; #define ok 1 #define error 0 #define true 1 #def

栈的顺序结构和链式结构实现

1.栈的顺序存储<数组实现> 1.1.栈的接口 1 package com.neusoft.stack; 2 3 public interface IStack { 4 //1.栈置空 5 public void clear(); 6 //2.栈判空 7 public boolean isEmpty(); 8 //3.栈长度 9 public int length(); 10 //4.取栈顶元素 11 public Object peek(); 12 //5.移除栈顶元素-----出栈 13

数据结构----线性表顺序和链式结构的使用(c)

PS:在学习数据结构之前,我相信很多博友也都学习过一些语言,比如说java,c语言,c++,web等,我们之前用的一些方法大都是封装好的,就java而言,里面使用了大量的封装好的方法,一些算法也大都写好了,java还有三个特性,封装.继承.多态.当然这里不是讲Java,这里主要是说内部结构,大家都知道数据结构有些东西是分为逻辑结构和物理结构的,物理结构有分为顺序结构和链式结构,有不懂得可以百度百科,这里主要是分享线性表的顺序结构.那么什么是线性表呢,线性表是最基本.最简单.也是最常用的一种数据结

线性表的顺序存储结构和链式存储结构

前言 上一篇<栈>中提到了栈的顺序存储结构和链式存储结构,现在就对此做个简单的比较.因为栈是线性表的一种,顺序存储结构和链式存储结构实际是线性表的两种存储方式.而栈和队列都是两种重要的线性表结构.所以本文标题直接为线性表的顺序存储结构和链式存储结构. 开始比较两种不同的存储方式 一.顺序存储结构(也可称为顺序表) 顺序表的特点是逻辑上相邻的数据元素,物理存储位置也相邻,并且,顺序表的存储空间需要预先分配. 优点: (1)方法简单,各种高级语言中都有数组,容易实现. (2)不用为表示节点间的逻辑

数据结构-线性表的链式结构

线性表的链式结构,与之前说过的线性表的顺序结构差不多,区别在于存储结构和方式的不一样. 在链式中,来一个数据就去寻找一个空间存储一个结点有多少数据占多大的地方,是动态的存储方式.另外顺序表如果存储1MB就只占1MB存储空间,但是链式表不一样,它会有额外的空间去存储对应结点的指针. 这样一分析结构就出来了,链式结构为两部分:1.结点域.2.指针域.实现方法用动态存储. 1 #include "stdio.h" 2 #include "stdlib.h" 3 4 typ

顺序存储结构与链式存储结构

上一篇博客简单讲述了一下两种结构的概念这一篇博客主要想讲述一下他们之间的区别 顺序存储结构与链式存储结构的优缺点 顺序存储结构 概念官方一点来说可以使用百度百科的介绍:顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现. 当然不得不说一般这种官方的解释都是不太适合我的,所以用小甲鱼的方式来说这个概念的话,简单来说就是,用一段连续的地址存放数据元素,数据间的逻辑关系和物理关系相同. 优点1:存储密度大,空间利

不要打断链式结构:使用 RxJava的 compose() 操作符

不要打断链式结构:使用 RxJava的 compose() 操作符

文件上传以及JS链式结构

文件上传: 文件上传使用FileUpload控件,使用控件的SaveAs方法,需要绝对路径. 获取文件的绝对路径:Server.MapPath(相对路径); 或许要上传文件的本身名字用.FileName获取. 因为名字相同的文件将会被直接覆盖,所以一般文件名字要拼接上传时间和用户名保证不重名. 上传文件默认最大为4MB,在C#端限制文件大小有缺陷,一般用JS端限制. 获取要上传的文件通过ID获取FileUpload控件然后通过value值获取文件然后通过.length属性确定是否有文件要上传,然