lesson18 链表 new.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文档。上传文档
查看更多
lesson18 链表 new

遍历链表 3 在指定位置后插入节点 1、找第i个位置的节点p 2、若p!=NULL,执行以下动作: newNode指向p的next newNode-next=p-next; newNode=(Node*)malloc(sizeof(Node)); 创建新节点newNode p的next指向newNode p-next=newNode; 创建链表 3 任意位置插入节点函数 void insertAt(Node * head,int index) { } Node * p,* newNode; p=find(head,index); newNode=(Node*)malloc(sizeof(Node)); if(p!=NULL){ } return ; newNode-next=p-next; p-next=newNode; 遍历链表 3 先找到需要删除位置前一个的节点 head ^ p 记得释放! 删除指定位置的节点,例如第3个 遍历链表 3 删除指定位置的节点 1、找删除位置的前一个节点p 2、若p的next不是NULL,执行以下动作 记住p的next delNode=p-next; p的next指向delNode的next p-next=delNode-node; 释放delNode free(delNode); 创建链表 3 删除指定位置的节点 void deleteAt(Node * head,int index) { } Node * p,*delNode; p=find(head,index-1); if(count==index-1){ } return ; delNode=p-next; p-next=delNode-next; free(delNode); 定义链表 3 课堂练习 编写程序,从键盘输入一个n边形的顶点的坐标,计算其周长 3 链表的实例 5 手机通讯录 问题描述: 1、显示一个菜单 2、根据选择的菜单项完成相应的操作 欢迎光临使用手机通讯录 1、输入联系人 2、查询联系人 3、删除联系人 0、退出 请选择需要的操作 3 链表的实例 5 分析 定义一个结构体,可以保存保存联系人信息的姓名、手机号、住址 姓名 手机 结构体:联系人 住址 3 链表的实例 5 分析 因为手机联系人经常变,不好使用数组 张三 1381 张湾 Why? 使用链表 next 李四 1381 红卫 next 王五 1381 汽院 ^ 3 链表的实例 5 1、结构体定义 struct node { char name[20]; char phone[12]; char address[50]; } head={“”,””,””,NULL}; struct node * next; head作为头结点变量 lesson19_01.c 3 链表的实例 5 2、主函数 void showMenu(); void selectMenu(); void add(struct node * head); void find(struct node * head); void del(struct node * head); int main(){ showMenu(); selectMenu(); return 0; } 3 链表的实例 5 3、输出菜单 void showMenu(){ printf(“欢迎光临使用手机通讯录\n”); printf(“ 1、输入联系人\n”); printf(“ 2、查询联系人\n”); printf( 3、显示所有联系人\n); printf( 4、删除联系人\n); printf(“ 0、退出\n”); return ; } 3 链表的实例 5 3、菜单选择 void selectMenu(){ int select; while(1){ printf(“请选择需要的操作\n”); scanf(“%d”,select); getchar();/*过滤后面的回车*/ switch(select){ case 1: add(head);break; case 2: find(head);break; case 3: display(head);break; case 4: del(head);break; case 0: return; } } } 3 链表的实例

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档