- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态数组简介 先为顺序表空间设定一个初始分配量,一旦因插入元素而空间不足时,可为顺序表增加一个固定长度的空间增量。 第2章 线性表 2.1 线性表的逻辑结构 2.2 线性表的顺序表示和实现 2.3 线性表的链式表示和实现 2.4 应用举例 2.3 线性表的链式表示和实现 2.3.1 链表的表示 例:请画出26 个英文字母表的链式存储结构。 4)头指针、头结点和首元结点的区别 (3)举例 例1: 例2: sizeof(x)——计算x的长度 malloc(m) —开m字节空间 free(p) ——删除一个变量 附2: 补充结构数据类型的C表示法 2.3.2 链表的实现 (1) 单链表的建立和输出 (2) 单链表的修改 (3) 单链表的插入 (4) 单链表的删除 (1) 单链表的建立和输出 例:用单链表结构来存放26个英文字母组成的线性表(a,b,c,…,z),请写出C语言程序。 * * #define LIST_INIT_SIZE 100 //存储空间的初始分配量 #define LISTINCREMENT 10//存储空间的分配增量 Typedef struct{ ElemType *elem; //表基址(用指针*elem表示) int length; //表长度(表中有多少个元素) int listsize; //当前分配的表尺寸(字节单位) }SqList; 注:三个分量可简写为:L.elem L.length L.listsize 存储结构描述如下(见教材P22): sizeof(x)算符的意思是:计算变量x的长度(字节数) malloc (m)函数的意思是:新开一片大小为m字节的连续空间,并把该区首址作为函数值。 Status InitList_Sq( SqList L ) //创建一个空线性表 { L.elem=(ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType)); If(!L.elem) exit(OVERFLOW); //分配失败,结束程序 L.length=0; //暂无元素放入,空表 L.listsize=LIST_INIT_SIZE; //表尺寸=初始分配量 Return OK; } //InitList_Sq 动态创建一个空顺序表的算法: realloc (*p, newsize)函数的意思是:新开一片大小为newsize的连续空间,并把以*p为首址的原空间数据都拷贝进去。 动态顺序表的插入算法 Status ListInsert_Sq(SqList L, int i, ElemType e) { //在顺序线性表中第i个位置之前插入新的元素e if( i 1 or i L.length+1) return ERROR; // 检验i 值的合法性 if ( L.length ≥ L.listsize ) //若表长超过表尺寸则要增加尺寸 { newbase = ( ElemType* ) realloc ( L.elem , (L.listsize + LISTINCREMENT )* sizeof ( ElemType ) ); if (newbase=NULL )exit( OVERFLOW ) ; //分配失败则退出并报错 L.elem = newbase ; //重置新基址 L.listsize = L.listsize + LISTINCREMENT ; } //增加表尺寸 q = L.elem[i-1] ; // q为插入位置。这是没有头结点的情况 for ( p = L.elem[L.length-1] ; p=q ; --p ) *(p+1) = *p ; //插入位置及之后的元素统统后移, p为元素位置 *q= e ; //插入e ++L.length ; //增加1个数据元素,则表长+1 return OK ; } //ListInsert_Sq 动态顺序表的删除算法 Status ListDelete_Sq(SqList
您可能关注的文档
最近下载
- 老年髋部骨折患者围术期下肢深静脉血栓基础预防专家共识(2024版).pdf VIP
- 华为ICT大赛云赛道认证考试复习题库(含答案).pdf VIP
- 北师大版六年级数学上册期中期末试题及答案.pdf VIP
- 2021-2022年中国ESG行业研究报告.pptx
- 第一单元峥嵘岁月 第1课情感表达 教学设计 人教版初中美术七年级上册.pdf
- 2024年秋新人教版地理七年级上册课件 4.1 多变的天气.pptx
- 人教版九年级全册英语Unit 14大单元整体教学设计.docx
- 大单元教学中的项目化学习——以五年级上册民间故事单元为例.docx
- 全员专项学习培训试题题库单选、多选试题附答案.doc VIP
- 22G101-3 混凝土结构施工图平面整体表示方法制图规则和构造详图(独立基础、条形基础、筏形基础、桩基础).docx
文档评论(0)