0

0

05.线性表(四)链式存储结构.静态链表

php中文网

php中文网

发布时间:2016-06-07 16:12:57

|

2605人浏览过

|

来源于php中文网

原创

链式存储结构.静态链表 一、静态链表 1.静态链表存储结构 单链表是通过指针实现的,但是我们也可以通过数组来代替指针描述单链表,即静态链表。如何实现静态链表?构造数组的元素由两个数据域组成:data和cur,即数组的每个下标都对应一个data和一个cur。数据

链式存储结构.静态链表 一、静态链表 1.静态链表存储结构 单链表是通过指针实现的,但是我们也可以通过数组来代替指针描述单链表,即静态链表。如何实现静态链表?构造数组的元素由两个数据域组成:data和cur,即数组的每个下标都对应一个data和一个cur。 数据域data:用来存放数据元素,即要处理的数据; 游标cur:存放该元素的后继在数组中的下标,相当于单链表中的next指针; 为了方便插入数据,我们通常会把数组建立得大一些,以便有一些空闲空间而不致于出现溢出情况。 线性表的静态链表存储结构: #define MAXSIZE 1000 //假设链表的长度为1000(个元素) typedef struct { ElemType data; //数据域,int类型 int cur; //游标(Cursor),为0时表示无指向 }Component,StaticLinkList(MAXSIZE); 2.备用链表 由于数组的第一个和最后一个元素作为特殊元素处理,不存数据,因此我们把未使用的数组元素称为备用链表。 因此,我们规定: (1)数组第一个元素(即下标为0的元素)的游标cur存放第【本文来自鸿网互联 (http://www.68idc.cn)】一个空闲空间元素的下标(备用链表的第一个元素); (2)数组最后一个元素的游标cur存放第一个有数值的元素的下标(相当于单链表中的头结点作用)。当整个链表为空时则最后一个元素的游标cur为0。 (3)链表的最后一个有值元素的cur为0 \
\

升华笔记:如何将一维数组list中各分量链成一个备用链表? typedef int Status Status InitList(StaticLinkList list) { int i; //i为数组下标,MAXSIZE为链表长度 for(i=0;i二、静态链表的插入/删除操作喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgoKCgoKCgogICAgvrLMrMG0se21xLLlyOu6zcm+s/2y2df3o6zX7rnYvPzKx9KqveK+9sjnus7Tw76yzKzEo8Titq/MrMG0se294bm5tcS05rSiv9W85LXEt9bF5KOs0OjSqsqxyerH66Oszt7Tw8qxys23xaGjCjxzdHJvbmc+MS6+ssyswbSx7bXEsuXI67LZ1/c8L3N0cm9uZz4KPHN0cm9uZz4oMSnL47eoy7zCtzwvc3Ryb25nPgogICAgzqrBy7Hmw/fK/dfp1tDExNCpt9bBv860sbvKudPDo6y94r72tcSw7Leoyse9q8v509DOpbGzyrnTw7n9tcS8sNLRsbvJvrP9tcS31sG/08PTzrHqY3VywbSzydK7uPaxuNPDtcTBtLHtKLy0v9XBtLHtKaOsw7+1sb340NCy5cjryrGjrLHjv8nS1LTTsbjTw8G0se3Jz8ihtcO12tK7uPa94bXjo6i8tM60sbvKudPDtcS12tK7uPa94bXjo6nX7s6qtP2y5cjr0MK94bXjoaMKyrXP1rvxyKG/1c/Qt9bBv8/CsepNYWxsb2NfU0xMuq/K/cvjt6ijugphLrvxyKHK/dfptdrSu7j21KrL2LXE086x6mN1cj1po6zG5LTmt8W1xMrHsbjTw8G0se21xLXa0ru49r/Vz9C94bXjOwpiLr2ryv3X6bXaabj21KrL2LXE086x6mN1cj1pJiM0MzsxuLMmIzIwNTQwO7j4zbfWuNXrCmMut7W72LG7yrnTw7XEyv3X6dSqy9jPwrHqCjxibG9ja3F1b3RlPgogaW50IGk9bGlzdFswXS5jdXI7ICAgICAgICAgLy/I52k9bGlzdFswXS5jdXI9NwogbGlzdFswXS5jdXI9bGlzdFtpXS5jdXI7IC8vzbfWuNXrbGlzdFswXS5jdXI9bGlzdFs3XS5jdXI9OAogcmV0dXJuIGk7CjwvYmxvY2txdW90ZT4KPHN0cm9uZz4oMinUtMLryrXP1jwvc3Ryb25nPgovKjEuyPSxuNPDv9W85MG0se3Oqr/Vo6zU8re1u9i31sXktcS94bXjz8Kx6qOst/HU8re1u9gwKi8KaW50IE1hbGxvY19TTEwoU3RhdGljTGlua0xpc3QgbGlzdCkKewogICAgaW50IGk9bGlzdFswXS5jdXI7ICAgICAgICAvL7vxyKGxuNPDwbSx7bXEtdrSu7j2veG148/CseootbHHsMr91+m12tK7uPbUqsvYtcRjdXK05rSitdrSu7j2sbjTw7/Vz9C1xM/CseopCiAgICBpZihsaXN0WzBdLmN1cikgICAgICAgICAgICAvL8jnuftsaXN0WzBdLmN1ciE9MKOs1PLLtcP3yv3X6bqs09C3x7/V1KrL2AogICAgewogICAgICAgICAgICBsaXN0WzBdLmN1cj1saXN0W2ldLmN1cjsgICAgLy/TydPa0qrEw7P20ru49rG408PBtLHttcS94bXjyrnTw6OsztLDx9Do0qq9q8r91+m12tK7uPbUqsvYtcRjdXK05rfFz8LSu7j2v9Wz9sC0tcTUqsvY1/exuNPDCiAgICB9CiAgICByZXR1cm4gaTsvL7e1u9ixu8q508O1xM/CseoKfTxicj4KCgoKLy/XosrNo7q82cjnz8jHsGxpc3RbMF0uY3VyPTcoyv3X6c/CseomIzIwNTQwOykstbHPwrHqzqo3tcS31sG/KMr91+nUqsvYKde8sbixu8q508PBy6Osvs21w9PQvdPM5tXfo6zL+dLUsNG31sG/NyhsaXN0W2ldLmN1cqOsxuTW0Gk9Nym1xGN1ciYjMjA1NDA7PTijrLizJiMyMDU0MDu4+M231KrL2KOobGlzdFswXS5jdXKjqaOs1q66877Nv8nS1LzM0Pi31sXk0MK1xL/Vz9C31sG/oaMvLwoKCi8qMi7U2kzW0LXaabj21KrL2Naux7Cy5cjr0MK1xMr9vt3UqsvYZSovCnR5cGVkZWYgaW50IFN0YXR1cwp0eXBlZGVmIGludCBFbGVtVHlwZQpTdGF0dXMgTGlzdEluc2VydChTdGF0aWNMaW5rTGlzdCBMLGludCBpLEVsZW1UeXBlIGUpCnsKICAgIGludCBqLGssbTsKICAgIGs9TUFYX1NJWkUtMTsgICAgLy/XotLio7prytfPyMrH1+6689K7uPbUqsvYtcTPwrHqICAgIAogICAgaWYoaiZsdDsxIA=="| j>ListLength(L)+1) return ERROR; j=Malloc_SLL(L); //a.获得空闲分量的下标 if(j) { L[j].data=e; //b.将数据赋值给此分量的data for(m=1;m
2.静态链表的删除操作 源码实现 /*1.将下标为k的空闲结点回收到备用链表*/ void Free_SSL(StaticLinkList space,int k) { space[k].cur=space[0].cur; //将数据的第一个元素cur(其值为备用链表的第一个空闲元素下标),赋值给要删除分量的cur space[0].cur=k; //把要删除的分量下标赋值给第一个元素的cur } /*2.删除在L中第i个数据元素e*/ typedef int Status Status ListDelete(StaticLinkList L,int i) { int i,k; if(iListLength(L)) return ERROR; k=MAXSIZE-1; //存储链表最后一个元素的下标 for(j=1;j 三、静态链表的优缺点 1.优点 在插入和删除操作时只需要修改游标,不需要移动元素,从而改进了在顺序存储结构中的插入和删除操作需要移动大量元素的缺点; 2.缺点 (1)没有解决连续存储分配带来的表长度难以确定的问题; (2)失去了顺序存储结构随机存取的特性;

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第十一期_综合实战
第十一期_综合实战

共115课时 | 20.5万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.4万人学习

Django 教程
Django 教程

共28课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号