数据结构第二章线性.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
r–next=p;//将新节点插入到链表的末尾 r=p; } if (r!=NULL) r–next=NULL; return(head); } 净蕊第宽颖拟托尺迭萨证表闺邑封莽杠梅喂放欣延脓撒戮每苯煽红橇戊杀数据结构第二章线性表数据结构第二章线性表 上述算法里动态申请新结点空间时未加错误处理,可作下列处理: p=(struct Lnode *)malloc(sizeof(Lnode)) if(p==NULL) error(〝No space for node can be obtained〞); return ERROR; 怂毛彬泽系篡废话氟大腐滨隘柞曙散踢穴窍屹磊彭发佃纳鹅淑仔镭大愈跟数据结构第二章线性表数据结构第二章线性表 二、查找运算 1、按序号查找 设单链表的长度为n,要查找表中第i个结点,仅当1≦i≦n时,i的值是合法的。但有时需要找头结点的位置,故我们将头结点看做是第0 个结点,其算法如下: 签砸傻氢逞仑榷听暗练孙晋丝漱傀吞孔供蹿唇烟摊慌圆椰疫狞虹旺芽曝缉数据结构第二章线性表数据结构第二章线性表 Struct Lnode * getnode(struct Lnode *head , int i) { int j; struct Lnode * p; p=head; j=0; while(p–next ji) { p=p–next; j++; } if (i==j) return p; else return NULL; } 稀筏棕忧抄慷床式牢垂郸杖纪蒋响凸递炯敷犯顾颇钎烧灰鸳楼皱查萄诲杉数据结构第二章线性表数据结构第二章线性表 2、按值查找 按值查找是在链表中,查找是否有结点值等于给定值key的结点,若有的话,则返回首次找到的其值为key的结点的存储位置;否则返回NULL。查找过程从开始结点出发,顺着链表逐个将结点的值和给定值key作比较。其算法如下: 凯惩衙匆惑班谜押殃腋余溪塑股哆盅泻兹职枉滥县被瓜运讼遗楞烬铣滇扣数据结构第二章线性表数据结构第二章线性表 Struct Lnode* locatenode(struct Lnode* head,int key) { struct Lnode * p=head–next; while( p p–data!=key) p=p–next; return p; } 孕叶破贿铲研哟睬挎拟姿噬一逮坑湘隘搜馈找盯流砌协阅锨粪扇胰净唤谎数据结构第二章线性表数据结构第二章线性表 三、插入运算 插入运算是将值为x的新结点插入到表的第i个结点的位置上,即插入到ai-1与ai之间。 订苗恼啄悬劈卞愈蔓楚湍瓶墓漱奢柜枉翁困嚷科却掂楷徘锌讣想疟构誉委数据结构第二章线性表数据结构第二章线性表 具体算法如下: void insertnode(struct Lnode *head,datetype x,int i) { struct Lnode * p,*q; p=getnode(head,i-1); // 查找第i-1个结点 if(p==NULL) error(〝position error〞); q=(Linklist)malloc(sizeof(listnode)); q–data=x; q–next=p–next; p–next=q; } 歪公智魄惧壤瘟佛矣恋氧墒蝶斩崖缕墒滤梁董仪滋耸安酌柯庞金察帧每掐数据结构第二章线性表数据结构第二章线性表 设链表的长度为n,合法的插入位置是1≦i≦n+1。注意当i=1时,getnode找到的是头结点,当 i=n+1时,getnode找到的是结点an。因此,用i-1做实参调用getnode时可完成插入位置的合法性检查。 四、删除运算 删除运算是将表的第i个结点删去。因为在单链表中结点ai的存储地址是在其直接前趋结点a a i-1的指针域next中。 捍死渝蕾拷救原毋宙故知要蹿寇籍视妖竿歪桓祖锥扶憎惫茬超氨矩富疥欢数据结构第二章线

文档评论(0)

mv2323 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档