《数据结构》实验讲义.docVIP

  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文档。上传文档
查看更多
《数据结构》实验讲义

实验二 单链表的基本操作 实验目的: 1、熟悉将算法转换成程序代码的过程。 2、了解单链表的逻辑结构特性,熟练掌握单链表存储结构的C 语言描述方法。 3、熟练掌握单链表的基本操作:查找、插入、删除等,掌握单表的存取特性。 实验内容: 1、分别建立包含10个数据元素的单链表; 2、从键盘输入一个数据元素x,插入到线性表中第i(包含1号位置)个位置; 3、从键盘输入一个数据元素关键字x或位置i(包含1号位置),从线性表中删除相应数据元素; 4、能完成查找功能; 5、打印单链表元素; 5、给出程序及插入、删除前和插入、删除后线性表结果。 实验步骤: #include stdio.h #include malloc.h #include stdlib.h typedef struct node{ int data; /*每个元素数据信息*/ struct node *next; /*存放后继元素的地址*/ } LNode,*LinkList; LinkList Creat_LinkList(void ) { /*创建空单链表,入口参数:无;返回值:单链表的头指针,0代表创建失败,非0表成功*/ LinkList H; H=(LinkList )malloc(sizeof(LNode)); if (H) /*确认创建头结点创建是否成功,若成功,修改单链表头结点的指针域为0表空表*/ {H-next=NULL; H-data=0; printf(创建头结点成功!\n); } return H; } void Inition_LinkList(LinkList L,int n) /*采用前插发或后插法生成链表L, 参数n为初始化数据的个数*/ { 学生填写 } void display(LinkList p) { 学生填写 } LinkList Locate_LinkList( LinkList H, int x) { /*在单链表中查找值为x的结点,入口参数:单链表指针,检索元素*/ /*出口参数:找到后返回其指针,否则返回NULL*/ LinkList p=H-next; while ( p p-data != x) p=p-next; return (p); } LinkList Locate_LinkList2( LinkList H, int i) /*在单链表中查找第i个结点*/ { LinkList p; int j; p=H; j=0; while (p ji ) /*查找第i个结点*/ { p=p-next; j++; } /*while*/ if ( j != i || !p) { printf(参数 i 错或单链表不存在); return (NULL); } /*第i个结点不存在*/ return (p); } int Insert_LinkList( LinkList H, int i, int x) { /*在单链表H的第i个位置前插入值为x的结点,入口参数:单链表,插入位置,插入元素*/ /*返回参数:成功标志,0不成功,1成功*/ LinkList p, q; p= Locate_LinkList2( H, i-1); /*找第i-1个结点地址*/ if (!p) { printf(插入位置有误\n); return (0); } q=(LinkList) malloc(sizeof(LNode)); if (!q) { printf(申请空间失败\n); return (0); } /*申请空间失败,不能插入*/ q-data=x; q-next=p-next; /*新结点插入在第i-1个结点的后面*/ p-next=q; return 1; /*插入成功,则返回*/ } int Del_LinkList(LinkList H,int i) { /*删除单链表H上的第i个结点,入口参数:单链表,删除元素序号,返回参数:成功标志, 0不成功,1成功*/ LinkList p, q; int j; if (!H-next) { printf(空表不能删除\n); return (0); } p= Locate_LinkList2( H, i-1); /*找第i-1个结点地址,见算

文档评论(0)

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

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

1亿VIP精品文档

相关文档