软件技术基础第二章(8)基本数据结构复习课.ppt

软件技术基础第二章(8)基本数据结构复习课.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章:基本数据结构复习课 复习 顺序存储结构下逆转线性表的算法。 输入:长度为n的线性表数组A(1:n) 输出:逆转后的长度为n的线性表数组A(1:n) Procedure InvertSL(n,A) for k=1 to n/2 do { t=A(k);A(k)=A(n-k+1);A(n-k+1)=t } return 比较两个序列大小的算法。 输入:长度为n的序列数组A(1:n),长度为m的序列数组B(1:n) 输出:若AB,则输出flag=-1;若A=B,则输出flag=0;若AB,则输出flag=1 Procedure CompareAB(n,A,m,B,flag) k=0 if (nm) then flag=1 else flag=0 While ((kn)and(flag=0)) Do {k=k+1 if (A(k)B(k)) then flag=1 else if(A(k)B(k)) then {k=k+1 While ((kn)and(A(k)B(k))) k=k+1 if (k=n+1) then flag=-1 else flag=1 } } return 计算循环链表长度的算法。 输入:循环链表的头指针Head 输出:循环链表的长度n Procedure LengthofCST(Head,n) n=0 K=Next(Head) While (k≠Head) Do {n=n+1;k=Next(k)} return 逆转线性单链表的算法。 输入:线性单链表的头指针Head 输出:逆转后的线性单链表 Procedure InvertST(Head) if (Head=0) then return p=Head; q=Next(p); Next(p)=0 While (q≠0) Do {r=Next(q); Next(q)=p p=q; q=r } Head=p return 线性单链表分解的算法。 输入:线性单链表的头指针Head,线性单链表的值为正整数,且按值从大到小链接 输出:值为奇数且按值从小到大链接的线性单链表(头指针为AH)和值为偶数且按值从小到大链接的线性单链表(头指针为BH) Procedure DecomposeST(Head,AH,BH) AH=BH=0; k=Head While (k≠0) Do {New(p); V(p)=V(k) if (V(k)是奇数) then {Next(p)=AH;AH=p} Else {Next(p)=BH;BH=p} } return 按值重新链接循环链表的算法。 输入:按绝对值从小到大链接的循环链表头指针Head 输出:按值从小到大链接的循环链表头指针Head Procedure RearrangeST(Head) If (Next(Next(Head))=Head) then return kk=Next(Head); k=Next(Next(Head)) While (k≠Head) Do {j=Next(k) if (V(k)0) then { Next(k)=Next(Head); Next(Head)=k; Next(kk)=j } else kk=k k=j } return 反复找出给定线性单链表中结点值最小的结点,输出该值并将该结点从表中删除。 输入:线性单链表头指针Head,结点值均为正整数 输出:按值从小到大输出线性单链表中的值 Procedure OutputandDeleteST(Head) While (Head≠0) Do { k=Head; data=V(k); n=k While (Next(k)≠0) Do { j=Next(k) if (V(j)data) then { data=V(j); m=k; n=j} k=j } Output V(n) If (n≠Head) then Next(m)=Next(n) else Head=Next(n) Dispose(n) } return 将稀疏矩阵转换成三列二维数组表示的算法。 输入:稀疏矩阵A(1:m,1:n) 输出:A的三列二维数组表示B(0:t,1:3),其中t为A中非零元素的个数 Procedure Convert(A,m,n,B) B(0,1)=m; B(0,2)=n K=1 for i=1 to m do for j=1 to n do if (A(i,j)≠0) then { B(k,1)=i; B(k,2)=j; B(k,3)=A(i,j); k=k+1} B(0,3)=k-1 return 按层次输出头指针为BT的二叉链表中所有

文档评论(0)

iris + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档