网站大量收购独家精品文档,联系QQ:2885784924

34 结构体的应用(单向链表).ppt

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

* 温故而知新 ——结构体类型以及动态内存分配 * 1、定义结构体类型friend,成员name和telephone; struct friend{char name[20],telephone[20]}; 2、定义该类型的变量w和指针变量pw,并且赋值, 使得pw指向w; struct friend w,*pw; pw=w; 3、输入w的两个成员,分别用w和pw输入。 scanf(“%s%s”, w.name, pw-telephone); 4、动态申请可以存储以上类型的变量的内存空间, 用指针pw指向该内存; pw=(struct friend *)malloc(sizeof(struct friend)); 5、输入动态申请变量的姓名和电话号码成员值; scanf(“%s%s”,pw-name,pw-telephone); 6、释放动态申请的内存。 free(pw); head 1000 1032 3284 1296 1382 2008 图 动态单向链表示意图 H 3284 A 1296 N 1382 G 2008 E NULL 1000 C 1032 头指针 第一结点 尾结点 结构体的应用——链表 ①链表中每个元素称为一个结点。 ②相邻结点的地址不一定是连续的,依靠指针将它们连接起来。 1. 链表的基本结构 ③构成链表的结点必须是结构体类型数据。 struct node {char c; struct node *next; }; struct node *head; * 建立链表就是根据需要一个一个地开辟新结点,在结点中存放数据并建立结点之间的链接关系。 3. 建立单向链表 * Step1:申请新结点空间; Step2:写入数据; Step3:将新结点链接入链表。 ——尾插法 ——头插法 ——有序插入 q 【例】建立一个学生电话簿 的单向链表函数。 3. 建立单向链表——尾插法 头指针h设为NULL 读入一个学生姓名name 当姓名长度不为0 malloc开辟新结点用p指示 strcpy(p-name,name) gets(p-tel) p-next=NULL h==NULL T F h指向第一个 连接新结点 结点 h=p q-next=p q指向新的尾结点 q=p 读入一个学生姓名name 图 建立单向链表 NULL h p ZhangNULL WangNULL p q struct node { char name[20],tel[12]; struct node *next; }*p,*q,*h=NULL; * p q liNULL name “Zhang” “Wang” “Li” “” 100 80 200 100 80 200 ? p ? q 100 100 80 80 200 200 #include stdio.h #include stdlib.h #include string.h struct node *create( void ) { struct node *p,*q,*h=NULL; char name[20]; printf(name: ); gets(name); while (strlen(name)!=0)/* 当输入的姓名不是空串循环 */ { // 开辟新结点 p= (struct node *)malloc(sizeof(struct node)); // 为新结点中的成员赋值 strcpy(p-name,name); printf(tel: ); gets(p-tel); p-next=NULL; * struct node { char name[20],tel[12]; struct node *next; }; //建立链接关系 if (h==NULL) /* h为空,表示新结点为第一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档