数据结构的链式存储中之中是用于表示数据间的关系这句话对吗

数据结构的链式存储中之中是用于表示数据间的关系这句话对吗,第1张

链式存储结构中每个结点除了包含信息域之外,还至少包含 一个指针域。链式存储结构是用指针来体现数据元素之间的逻辑关系的。利用这种结构,各个数据元素的存储单元不再要求是连续的,即可以把逻辑上相邻的两个元素存放在物理上不相邻的存储单元中,还可以在线性编址的存储器中表示非线性关系的结点。

链式存储结构的主要特点为:

结点中除包含保存数据元素的自身信息的信息域外,还有表示数据元素之间的链接信息的指针域,因此比顺序存储结构的存储密度低,存储空间的利用率也较低。

逻辑上相邻的数据元素在物理上不一定相邻,可用于存储线性表、树、图等多种逻辑结构。

插入、删除 *** 作比较灵活,不必移动数据元素,只要改变结点中的指针域的值即可。

链式结构是一种数据结构,学名链式存储结构,又叫链接存储结构。使用对象引用变量来创建对象间的链接。

它不要求逻辑上相邻的元素在物理位置上也相邻。因此它没有顺序存储结构所具有的弱点,同时也失去了顺序表可随机存取的优点。

其特点主要表现为:

1、比顺序存储结构的存储密度小;

2、插入、删除灵活,结点可以被插入到链表的任何位置,首、中、末都可以,而且不必要移动结点中的指针;

3、链表的大小可以按需伸缩,是一种动态存储结构,其实现的集合在增、删方面性能更高;

4、查找结点时的效率就相对数组较低,只能从第一个结点开始顺着链表逐个查找(这是他的缺点)。

高清播放机,图片大全,点击查看详情!

精选推荐

广告

数据结构篇——链式存储

3483阅读·0评论·0点赞

2019年2月18日

数据库二级复习笔记(1)选择题

1593阅读·0评论·1点赞

2022年3月15日

数据结构—栈---链式存储结构

115阅读·0评论·1点赞

2022年9月20日

数据结构之顺序存储与链式存储

6666阅读·0评论·10点赞

2020年11月25日

数据结构-第二章(5)-链式存储结构

1932阅读·4评论·3点赞

2021年11月26日

(数据结构)静态链表——概念、插入与删除(程序)、优缺点

320阅读·0评论·0点赞

2021年8月13日

高清播放机,图片大全,点击查看详情!

精选推荐

广告

链式存储结构的特点

1.3W阅读·1评论·2点赞

2017年10月31日

数据结构的链式存储结构

3673阅读·1评论·2点赞

2014年3月10日

数据结构——>链式存储结构

4

一、顺序结构

优点:

1、支持顺序存取和随机存取。

2、顺序存取速度快。

3、所需的磁盘寻道次数和寻道时间最少。

缺点:

1、需要为每个文件预留若干物理块以满足文件增长的部分需要。

2、不利于文件插入和删除。

二、链式结构

优点:

1、提高了磁盘空间利用率,不需要为每个文件预留物理块。

2、有利于文件插入和删除。

3、有利于文件动态扩充。

缺点:

1、存取速度慢,不适于随机存取。

2、当物理块间的连接指针出错时,数据丢失。

3、更多的寻道次数和寻道时间。

4、链接指针占用一定的空间,降低了空间利用率。

三、索引结构

优点:

1、不需要为每个文件预留物理块。

2、既能顺序存取,又能随机存取。

3、满足了文件动态增长、插入删除的要求。

缺点:

1、较多的寻道次数和寻道时间。

2、索引表本身带来了系统开销。如:内外存空间,存取时间等。

拓展资料:

文件存取方法:

顺序存取:顺序存取是按照文件的逻辑地址顺序存取。

固定长记录的顺序存取是十分简单的。读 *** 作总是读出上一次读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。如果文件是可读可写的。再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写 *** 作时,将一个记录写到文件 末端。允许对这种文件进行前跳或后退N(整数)个记录的 *** 作。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。

可变长记录的顺序文件,每个记录的长度信息存放于记录前面一个单元中,它的存取 *** 作分两步进行。读出时,根据读指针值先读出存放记录长度的单元 。然后,得到当前记录长后再把当前记录一起写到指针指向的记录位置,同时,调整写指针值 。

由于顺序文件是顺序存取的,可采用成组和分解 *** 作来加速文件的输入输出。

直接存取(随机存取法):

很多应用场合要求以任意次序直接读写某个记录。例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。直接存取方法便适合于这类应用,它通常用于磁盘文件。

为了实现直接存取,一个文件可以看作由顺序编号的物理块组成的,这些块常常划成等长,作为定位和存取的一个最小单位,如一块为1024字节、4096字节,视系统和应用而定。于是用户可以请求读块22、然后,写块48,再读块9等等。直接存取文件对读或写块的次序没有限制。用户提供给 *** 作系统的是相对块号,它是相对于文件开始位置的一个位移量,而绝对块号则由系统换算得到。

索引存取:

第三种类型的存取是基于索引文件的索引存取方法。由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给 *** 作系统记录键后就可查找到所需记录。通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。信息块的地址都可以通过查找记录键而换算出。实际的系统中,大都采用多级索引,以加速记录查找过程。

参考资料:百度百科:文件存取法

链式队列

链式存储结构的队列称作链式队列。

链式队列的队头指针指在队列的当前队头结点位置,队尾指针指在队列的当前队尾结点位置。不带头结点的链式队列时可直接删除队头指针所指的结点。

链式队列中结点的结构体可定义如下:

typedef struct qnode

{

DataType datal

Struct qnode *next

}LQNode

为了方便参数调用,通常把链式队列的队头指针front和队尾指针rear也定义为如下的结构体类型LQueue:

typedef struct

{

LQNode *front

LQNode *rear

}LQueue

链式队列 *** 作的实现

(1) 初始化QueueInitiate(LQueue *Q)

void QueueInitiate(LQueue *Q)

{

Q->rear=NULL

Q->front=NULL

}

(2)非空否QueueNotEmpty(LQueue Q)

int QueueNotEmpty(LQueue Q)

/*判断链式队列Q非空否,非空返回1,否则返回0*/

{

if(Q.front==NULL)return 0

else return 1

}

(3)入队列QueueAppend(LQueue *Q,DataType x)

int QueueAppend(LQueue *Q,DataType x)

/*把数据元素x插入链式队列Q队列的队尾,入队列成功返回1,否则返回0*/

{

LQNode *p

if((p=(LQNode*)malloc(sizeof(LQNode)))==NULL)

{

printf(“内存不足无法插入!\n)

return 0

}

p->data=x

p->next=NULL

if(Q->rear!=NULL)Q->rear->next=p

Q->rear=p

if(Q->front==NULL)Q->front=p

return 1

}

(4)出队列QueueDelete(LQueue *Q,DataType *d)

int QueueDelete(LQueue *Q,DataType *d)

/*删除链式队列Q的队头数据元素值到d,出队列成功返回1,否则返回0*/

{

LQNode *p

if(Q->front==NULL)

{

printf(“队列已空无数据元素出队列!\n”)

return 0

}

else

{

*d=Q->front->data

p=Q->front

Q->front=Q->front->next

if(Q->front==NULL)Q->rear=NULL

free(p)

return 1

}

}

(5)取队头数据元素QueueGet(LQueue *Q,DataType *d)

int QueueGet(LQueue *Q,DataType *d)

/*取链式队列Q的当前队头数据元素值到d,成功返回1,否则返回0*/

{

if(Q.front==NULL)

{

printf(“队列已空无数据元素出队列!\n)

return 0

}

else

{

*d=Q.front->data

return 1

}

}

(6)撤销动态申请空间Destory(LQueue *head)

int Destory(LQueue *head)

{

LQNode *p,*p1

p=Q.front

while(p!=NULL)

{

p1=p

p=p->next

free(p1)

}

}

帮你转的,我觉得他描述的很清楚。希望对你有帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6672825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存