- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单链表的应用—带头结点
链表的遍历:
访问链表每个元素一次且仅一次。
基本算法如下:
void print(node *L)
{ P=L-next;
while(P!=NULL)
{visit(P-data);
P=P-next;
}
}
例 设计算法,判断带头结点单链表L是否递增?若递增,则返回ture,否则返回false。
分析:
(1)链表空,返回true;
(2)只有一个元素,返回true;
(3)每个元素都小于其直接后继,返回true;
否则,返回false;
bool Judge(node *L)
{ node *P=L-next;
if(P==NULL) return(1);
while(P-next!=NULL)
{ if(P-dataP-next-data)
P=P-next;
else return(0);
}
return(1);
}
设计算法,使得带头结点的整型单链表中的所有元素值都变成原来的3倍。
如:原L=(1,2,3,4,5)变成L’=(3,6,9,12,15)
2、双链表和双循环链表
(1)双链表
类型描述如下: prior data next
typedef struct dnode
{elementtype data;
dnode *next,*prior; 引用:dnode *Head;
}
插入
假设被插入位置的前一个结点的指针P已找到,插入由S指向的结点:
①S-next=P-next;
② S-prior=P;
③ P-next=S;
④ S-next-prior=S;
删除
假设被删除结点的指针P已找到,删除由P指向的结点:
①P-next-prior=P-prior;
② P-prior-next=P-next;
③ delete(P);
顺序表:
逻辑上相邻的元素物理上也相邻 ;
可直接定位,节省搜索时间
然而,在 插入、删除时,需移动元素,浪费时间;
链表:
逻辑上相邻的元素物理上不一定相邻;
插入、删除时,不需移动元素。
§2.4 串
一、串的定义和运算
1、定义:
串 :是由n个字符a1,a2,…,an组成的有限序列(n≥0),记作S=“a1a2…an”
其中n为串长度,n=0时为空串;
注意:空串和空格串的区别:
空串——没有元素;
空格串——元素是空格符;
子串:串S中若干个连续的字符组成的序列。
2、运算:
(1)赋值(S=S1):将一个串值S1传送给一个串名S ;
(2)求长度str_length(S):返回串S的长度值 ;
(3)连接运算(S1+S2):将S1和S2连接成一个新串;
(4)求子串substr(S,i,j):返回串S从第i个元素开始的j个元素所组成的子串 ;
(5)串比较:比较两个串的大小 ;
(6)插入运算insert(S,i,S1):将子串S1插入到串S的从第i个字符开始的位置上 ;
(7)删除运算delete(S,i,j):删除串S中从第i个字符开始的j个字符 。
例 (1)空串和空格串
S1=“”; S1是空串,
S2=“ ”; S2是空格串;
(2)子串
S3=“abcde*$”;S4=“bcd”;S5=“abe”;
S4是S3的子串;S5不是S3的子串。
例 (1)赋值
S=“abcde*$”;S1=“bcd”;S2=S;
右边的值=左边的串名。
(2)连接运算
已知:S1=“bcd”;S2=“ace*”;
则:S2+S1=“ace*bcd”
(3)求子串
S=“abcde*$”;
substr(S,2,4)=“bcde”
例(4)插入
已知:S=“abcde*$”;S1=“bcd”;S2=“kf”;
insert(S,4,“mn”)=“abcmnde*$”;
insert(S1,2,S2)=“bkfcde”
(5)删除
S=“abcde*$”;S1=“bcd”;
delete(S,5,2)=“abcd$”;
delete(S1,1,2
您可能关注的文档
最近下载
- TXEEPIA 001-2023 重点行业企业项目碳排放评价技术规范.pdf VIP
- 2025年人教版三年级上册道德与法治全册知识点(新教材).pdf
- 海燕出版社六年度级劳动与技术上册教案.pdf VIP
- TCWEC29-2021水利水电工程清污机制造安装及验收规范(OCR).pdf VIP
- 第8课《回忆鲁迅先生》课件 (共45张ppt) 2025-2026学年统编版语文八年级上册.pptx VIP
- 初中美术折纸教学课件.ppt VIP
- 爱护公物,从我做起 主题班会课件(共30张PPT).pptx VIP
- 第二单元 单元复习课件七年级语文上册.ppt VIP
- 2025年广东高职高考语文试卷及答案.doc VIP
- 小马宝莉英文第四季台词S04E18 Maud Pie.pdf VIP
原创力文档


文档评论(0)