- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线性表地逻辑和存储结构
数据结构与算法 ---第四讲 北方民族大学 计算机科学与工程学院 王伦津 研究员 4.3 线性表的链式存储结构 顺序结构的缺点: 第一,当进行插入与删除时,需移动元素。如果线性表很大,移动量就非常大。 第二,由于它要求一片连续的存贮区域,所以存贮要求较高,不能利用小块存贮区。 线性表采用链式存贮结构时称为线性链表,它的具体存储方法也可能有多种,我们这里先介绍以后继或前驱地址为链的存储方法,这样的链表也称单链表。具体的存贮映射方法是 a2 an ^ head len a1 图 4?2 单链表基本形式 表头 TLinearListLink 链结点 TLinkNode … … 对线性表中每个元素ai,为它分配一块存贮区。有两种分配方式,一是设计者对一片足够大的存贮区自行管理(分配与释放),这种方式称为静态方法。相应的链式结构称为静态链表。另一种方式是利用高级语言的动态存贮管理机制(如PASCAL中的new、dispose、C/C++中的malloc、free、new、delete等)。 在这种方式中,对存贮空间的使用不需涉及存贮管理的实现问题。在本课程中,以后一种方式为主。 每个元素的存贮区分为两大部分: 其中,内容部分用于存放元素本身的信息;“前驱/后继地址”部分存放该元素的前驱或后继的存贮地址。这里我们一般使用后继地址。 对表中最后一个结点,令其“后继地址”为空,作为链表的结束标志 为了能方便地访问链表,设置链表头结点,记下链表中首结点的地址(有时也要记尾结点地址)和链表中当前结点个数等有关链表的信息。这种头结点作为链表的描述结点,是对链表的整体的描述,是整个链表的代表,故它的类型可做为线性表的类型。 一个典型的单链表的形式如图 4?2所示 内容 前驱/后继地址 线性链表的面向对象描述 (一)元素与关系描述 下面是链表中结点的C++描述,它代表着线性表的元素和关系。 template class TElem //上面是模板声明,表明TElem是一个可变(调)类型,在使用TLinkNode时动态决定 struct TLinkNode { TElem info; //info的类型是可变的类模板TElem TLinkNode *next; //注: 这里的TLinkNode后可以省略TElem }; (二)链表对象描述 链表对象应该是前面介绍的线性表抽象类TLinearList0的派生 类,代表着整个线性链表。它需要记录首结点的地址和链表中 当前结点个数等有关链表的信息,并针对其设置有关操作 template class TElem class TLinearListLink : public TLinearList0TElem { protected: TLinkNodeTElem *head; TLinkNodeTElem *lastVisited; long lastVisitedIndex; TElem buffElem; void ReleaseAll(); public: TLinearListLink(void); ~TLinearListLink(void); virtual TElem Get(long idx); virtual TElem *GetAddress(long idx); virtual TElem *Set(long idx, TElem elem); virtual long CountElem(TElem elem); virtual TElem *Prior(long idx); virtual TElem *Next(long idx); virtual long Locate(TElem elem, long sn=1); virtual long Locate(TElem elem, long *foundElemIndex=NULL); virtual long LocateFirst(TElem elem); virtual long LocateNext(TElem elem); virtual TElem *Insert(TElem elem, long sn=1); virtual TElem *Delete(long sn=1); virtual long Delete(TIndexSelector sel, TElem *elemDeleted=NULL); virtual long DeleteByIndex(long *idxTobe
您可能关注的文档
- 类风湿关节炎不平凡地十年.ppt
- 粉体密相气力输送论与技术进展.doc
- 粉饰部分方案09.03.1.doc
- 粗糙集理论(Rugh Set Theory RST).ppt
- 粤东721等九中波转播台铁塔大修检查项目.doc
- 粤东西北产业园区与粤东西北地发展.doc
- 粤东西北地区振兴战略--财政与粤东西北振兴战略地实施 测试题.doc
- 粤教版七上思品 第二单元测试.ppt
- 粤教版必修2老舍《我地母亲》课件.ppt
- 粤教版必修3第单元第14课:《山居秋暝》课件.ppt
- 2026年中国建设银行博士后科研工作站博士后研究人员招聘备考题库及1套参考答案详解.docx
- 2026交通银行四川省分行秋季校园招聘备考题库附答案详解(轻巧夺冠).docx
- 2026兴业银行兰州分行校园招聘备考题库附答案详解(典型题).docx
- 2026兴业银行长春分行秋季校园招聘备考题库附答案详解(实用).docx
- 2026兴业银行漳州分行校园招聘备考题库含答案详解(新).docx
- 2026中国邮政储蓄银行大连分行校园招聘备考题库及答案详解(各地真题).docx
- 2026招商银行郑州分行寒假实习生招募备考题库附答案详解(典型题).docx
- 2026中国民生银行银川分行校园招聘备考题库及答案详解(真题汇编).docx
- 2026中国邮政储蓄银行大连分行校园招聘备考题库附答案详解.docx
- 2026年中国邮政储蓄银行北京分行秋季校园招聘备考题库有答案详解.docx
最近下载
- 中国铁矿选矿新技术和新工艺.ppt VIP
- 2025年中国全自动振荡仪行业市场全景评估及投资前景展望报告.docx
- AI可信数据空间白皮书-.pptx VIP
- 票管员的年度总结.pptx VIP
- 5篇中心医院医德医风谈话谈心记录(系列完整版).pdf
- T_ZZXJX 18-2021 现浇混凝土空心楼盖结构工程施工及验收技术规程.docx VIP
- 全国大学生职业规划大赛《医学美容技术》专业生涯发展展示PPT【高职(专科)】 .pptx
- 21 小圣施威降大圣 课件(共34张PPT).ppt VIP
- 新时代教育强国的根本遵循知到智慧树期末考试答案题库2025年喀什大学.docx VIP
- 混凝土冬季施工质量控制培训课件.pptx VIP
原创力文档


文档评论(0)