数据结构数组与广义表.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*十字链表表示的稀疏矩阵举例ijedownright结点结构:稀疏矩阵M:M的十字链表:M.cheadM.rhead113145^^22-1^^^^312采用十字链表存储稀疏矩阵,创建稀疏矩阵、稀疏矩阵的运算见教材P104-106第31页,共46页,2024年2月25日,星期天*5.3广义表(GeneralLists)广义表(列表):n(?0)个表元素组成的有限序列,记作LS=(a1,a2,…,an)表头(head):n0时,表的第一个表元素表尾(tail):其它表元素组成的表空表:n=0的广义表。广义表的特性:有长度:n有深度:广义表中括号的重数可递归可共享表名表元素表长非空列表表头可是原子或列表,表尾必定是列表第32页,共46页,2024年2月25日,星期天*广义表的图形表示1、A=(/)2、B=(e)3、C=(a,(b,c,d))4、D=(A,B,C)注:○:表□:原子第33页,共46页,2024年2月25日,星期天*5.3.1广义表的定义GetHead(L):在广义表L存在的条件下,取L的表头。GetTail(L):在广义表L存在的条件下,取L的表尾。举例:1A=()GetHead(A)=NULL,GetTail(A)=NULL2B=(e)GetHead(B)=e,GetTail(B)=()3C=(a,(b,c,d))GetHead(C)=a,GetTail(C)=(b,c,d)GetHead((b,c,d))=b,GetTail((b,c,d))=(c,d)GetHead((c,d))=c,GetTail((c,d))=(d)4D=(A,B,C)GetHead(D)=A,GetTail(D)=(B,C)GetHead((B,C))=B,GetTail((B,C))=(C)5E=(())GetHead(B)=(),GetTail(B)=()第34页,共46页,2024年2月25日,星期天*5.3.2广义表的存储结构采用链式存储结构,元素包括原子和子表,结点结构:表结点:表示列表原子结点:表示原子1、广义表的头尾链表存储表示:typedefenum{ATOM,LIST}ElemTag;//ATOM=0:原子,LIST=1:子表typedefstructGLNode{ElemTagtag;//公共部分,用来区分原子结点和表结点Union{//原子结点和表结点的联合部分AtomTypeatom;Struct{structGLNode*hp,*tp;}ptr;//hp指向表头,tp指向表尾};}*Glist;tag=1hptptag=0atom第35页,共46页,2024年2月25日,星期天*A=(/)B=(e)C=(a,(b,c,d))D=(A,B,C)E=(a,E)5.5广义表的存储结构示例B0e1^C11^0a111^0b0d0cD1^11^E11^0aA=NIL表结点:原子结点:tag=1hptptag=0atom第36页,共46页,2024年2月25日,星期天*5.5广义表的存储结构示例对广义表:C=(a,(b,c,d)),其头尾链表为:1C0a1^10b10c1^0d第37页,共46页,2024年2月25日,星期天*2、广义表的扩展线性链表存储表示:typedefenum{ATOM,LIST}ElemTag;//ATOM==0:原子,LIST==1:

文档评论(0)

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

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

1亿VIP精品文档

相关文档