软件技术04数据结构3.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文档。上传文档
查看更多
软件技术04数据结构3.ppt

机械工程软件技术基础 0 复习与讨论 复习与讨论 复习与讨论 复习与讨论 复习与讨论 复习与讨论 复习与讨论 1 数据结构中的链表 链表 链表 链表 链表 2 建立链表 建立链表 建立链表 3 输出链表 4 可调数组 5 作业 * 第四讲 数据结构3 太原科技大学 陶元芳 2010.8 1)什么是结构体? 软件技术 一种可以由【用户自定义】的,可以包含【相互联系】的【不同类型】数据成员的,【结构型】数据类型 ▲ 类似于数据库的一条【记录】 ▲ 是C++中【类】概念的基础 2)结构体的用途 软件技术 ▲ 表达结构型的数据,如复数 ▲ 表达同类事物的多种属性 ▲ 包装【数据成员】 3)定义结构体类型 软件技术 struct□结构体名称 类型□成员名称1; 类型□成员名称2; …… 类型□成员名称n; ; 4)定义结构型变量 软件技术 ▲ 用【结构体类型】定义【结构体变量】 ▲ 或在定义结构体类型的同时定义结构体变量 struct□student char□name[10]; char□sex; int□age; float□score; s1,s2; 5)访问结构体成员 软件技术 用“.”运算符来引用成员,如: s1.age 20; printf(“age %d”,s1.age); ▲ 类似于外国人的姓名,如: 乔治.布什 ▲ 相当于对数据成员的包装, 防止重名,如大杨扬,小杨阳 6)结构体数组 软件技术 1)类似于数据库中的表 2)每个下标变量都是相同的结构体变量 3)说明其为数组即可,如: student stu[40]; 4)引用也相仿,如: stu[1].age 20; 7)结构体指针 软件技术 1)定义:student *ps 2)指向结构体的首地址: ps s1; 3)指向数据成员:ps- age 4)三种等价形式(运算符- ) ▲ s1.age ▲ *ps .age ▲ ps- age 软件技术 1)什么是链表? ▲ 链表是一种组织有序数据的数据结构 ▲ 通过指针将一系列数据节点连接成一条数据链 ▲ 节点中只有一个指向后继节点的指针为单链表 ▲ 链表中各节点在内存中可以不是连续存放的 (数组则一定是连续存放的) ▲ 链表比数组具有更好的动态性 ▲ 插入、删除操作灵活方便(如文本编辑时) 软件技术 2)单链表的组织模式:老师是链表头,拉着第一位小朋友,后面一个拉一个,链尾后面没有人了 软件技术 软件技术 软件技术 单链表存储示意图 165:bat-130- 130:cat-135 - 135:eat-170- 170:fat-110 - 110:hat-200- 200:jat-205 - 205:lat-160- 160:mat-NULL 单链表结构示意图 软件技术 1)怎样建立链表? ▲ 使用指向结构体的指针,如:struct stu *next; ▲ 使用结构体作为链表的数据节点 struct node char name[20]; struct node *link; ; 软件技术 ▲ 动态开辟内存 void *malloc unsigned size ; 第i个结点 李四 - i+1 第i+1个结点 王五 - i+2 第n个结点 孙七 NULL 头结点 空 - 1 第1个结点 张三 - 2 第n-1个结点 赵六 - n 软件技术 ▲ 创建新结点 ▲ 连接链条 第i个结点 李四 - i+1 1申请内存 2把新结点的地址 赋给前一结点链域 3输入数据 4清空链域 5指针迭代 软件技术 1)怎样输出链表? ▲ 利用循环 ▲ 利用指针 ▲ 指向结点的数据成员 for number 0;number N;number++ printf 第%d个人的姓名:%s\n,number+1,p- name ; p p- link; // 指向下一个名字 软件技术 1)怎样建立可调数组? ▲ 定义指针,如int *array NULL,num 3; ▲ 开辟内存,如array int * malloc sizeof int *num ▲ 利用数组与指针之间的关系,得到可调数组 array[1] 5; * * * * *

文档评论(0)

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

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

1亿VIP精品文档

相关文档