电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

单链表结点(多成员)的插入、查找与删除

  • 资源ID:34263323       资源大小:41.50KB        全文页数:4页
  • 资源格式: DOC        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

单链表结点(多成员)的插入、查找与删除

/*程序功能:用尾插法创建一个简单的链表,1.将链表中的数据输出到显示器上 .2.查找结点3.插入结点.4.删除结点 */#include #include #include struct LNode /*定义链表结构 (也可叫结点结构体)*/ char name10;int clas;int data; /*结点成员: 数据域 data*/struct LNode *next; /*结点成员: 指针域,指针域存放下一个结点的存储位置(即指针),*/; /*注意分号结束.不加分号,将提示" 定义中有太多的类型"错误提示*/*总结:结点总是由两部分组成:一个数据域,一个指针域.数据域可能有多个成员*/struct LNode *h; /*头指针 h -特别提示:定义在函数体外,以便下面的函数都能使用,请死死"抓住"头指针*/*下面各函数体内定义的变量 (虽然同名)只在各自的函数体内有效,这点早有讲述,不再重复*/*下面定义 create 函数,该函数功能是建立链表.该函数必须定义为指针函数,因为其返回值必须为指针值,指针指向的是 struct LNode 数据类型.-实际上是返回链表的头结点指针*/struct LNode *create(int n) struct LNode *p,*t; /*动态数据结点 p(用于申请内存空间),尾结点 t(用于保存申请的空间).*/int i; /*循环变量*/h=NULL; /*头指针赋空值*/for(i=n;i>0;-i) p=(struct LNode *)malloc(sizeof(struct LNode); /*分配内存空间,建立节点*/printf("Input name,class and score:");scanf("%s%d%d",p->name,if(h=NULL) /*如果头指针值为空值*/h=p; /*把新建节点的存储地址放到头指针中."*/t=p; /*把新建节点给 t 节点,这样,头指针便指向了 t 结点*/else /* 否则( 即头指针值不为空)*/t->next=p; /*把新建节点的存储地址给结点 t 的指针域.从第 2 次开始,新节点存储地址都传递给前一节点的指针域*/t=p; /*新节点给 t 节点,这样,上一节点的指针域便指向了新节点*/t->next=NULL; /*循环完毕,必须给最后一个节点指针域赋空值*/ return h; /*返回头指针,头指针此时的值已不为空*/*-结点查询函数的实现-*/struct LNode *search(struct LNode *h,char xm10) /*结点查找函数:在以 h 为头结点的链表中查找分数为 score 的结点信息 */ struct LNode *p;p=h; /*为不改变 h 的值,用 p 来替.两句可合并为一句:struct LNode *p=h;因为经过 create 函数,h 已返回头结点,且值已不再为空,并指向首结点. 如果 h 为 NULL 的话,则应改为:p=h->next.即从首结点开始,这点一定要切记 */while(p!=NULL&&strcmp(p->name,xm)!=0)p=p->next; /*指向下一结点.该循环体只有这一句*/if(strcmp(p->name,xm)!=0)printf("Can not find you need!n");elseprintf("you find the information is:-");printf("Name:%s Clas:%d Score:%d ",p->name,p->clas,p->data);putchar('n');return p; /*找到了要查找的结点,返回其地址*/*-插入一个结点的实现-*/int insert(struct LNode *h,int i) /*结点插入函数:在以 h 为头结点的链表中,在第 i 处插一个结点*/int j; struct LNode *p,*t;p=(struct LNode *)malloc(sizeof(struct LNode); /*创建一个新结点 */printf("Input name,class and score:");scanf("%s%d%d",p->name, /*给新结点输入数据 */if(inext; j+; /*指向下一个结点.j 自增 1.比如:i=5,则 j+只到到 4,一旦不符合jnext=t->next; /*这两句关键语句 :顺序不能颠倒*/t->next=p;printf("The new order is:n");t=h; /*要输出新链表,必须又从头结点开始.为不改变 h 的值,再次用 t 来代替开始*/while(t) printf("Name:%s Clas:%d Score:%d ",t->name,t->clas,t->data);putchar('n');t=t->next;return 1;/*-删除一个结点的实现-*/int delnode(struct LNode *h,int i)struct delnode *p,*t;int j;if(inext;j+;if(t=NULL)return 0; /*没有第 i-1 个结点,返回 0*/p=t->next; /*p 指向第 i 个结点*/if(p=NULL)return 0; /*没有第 i 个结点时,返回 0*/t->next=p->next; /*删除第 i 个结点*/printf("nThe new order is:n");t=h; /*要输出新链表,必须又从头结点开始.为不改变 h 的值,再次用 t 来代替开始*/while(t) printf("you find the information is:Name:%s Clas:%d Score:%d ",t->name,t->clas,t->data);putchar('n');t=t->next;free(p);return 1; /*成功删除返回 1*/*-在 main()函数中用复合语句的形式调用各函数-*/void main()/*-调用 create()函数-*/int n;struct LNode *q; /*定义一个链表指针,用于接受函数返回来的值*/printf("Input you want to create point:"); /*输入你想创建的节点数*/scanf("%d", /*调用 create()函数,上面函数返回的是头指针值*/printf("The result is:n");while(q) /*如果指针值不为空*/printf("Name:%s Clas:%d Score:%d ",q->name,q->clas,q->data);putchar('n');q=q->next; /*指针位移指向下一节点*/ /*直至指针域值为空,循环中止*/printf("n");/*-调用 search()函数-*/char xm10;printf("nInput you want to find name:");scanf("%s",xm);search(h,xm);/*头指针定为了全局变量 ,即可直接调用 */*-调用 insert()函数-*/int i,c;printf("Input you want to insert place:");scanf("%d",c=insert(h,i);if(c=1)printf(" return %d-Insert succesful!n",c);elseprintf(" return %d-Insert fail!n",c);/*-调用 delnode()函数-*/int i,c;printf("nInput you want to delete jd:");scanf("%d",c=delnode(h,i);if(c=1)printf(" return %d-Delete succesful!n",c);elseprintf(" return %d-Delete fail!n",c);getch();

注意事项

本文(单链表结点(多成员)的插入、查找与删除)为本站会员(第***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.