结构体数组中
2016-01-26 16:14
239 查看
请分析以下几种运算:
p->n 得到p指向的结构体变量中的成员n的值。
p->n++ 得到p指向的结构体变量中的成员n的值,用完该值后使它加1。
++p->n 得到p指向的结构体变量中的成员n的值,并使之加1,然后再使用它。
用结构体变量和指向结构体变量的指针构成链表
链表是一种常见的重要的数据结构。下图表示最简单的一种链表(单向链表)的结构。
链表有一个“头指针”变量,图中以head表示,它存放一个地址。该地址指向一个元素。链表中的每一个元素称为“结点”,每个结点都应包括两个部分:
一是用户需要用的实际数据,
二是下一个结点的地址。
可以看到链表中各元素在内存中的存储单元可以是不连续的。要找某一元素,可以先找到上一个元素,根据它提供的下一元素地址找到下一个元素。
可以看到,这种链表的数据结构,必须利用结构体变量和指针才能实现。
可以声明一个结构体类型,包含两种成员,一种是用户需要用的实际数据,另一种是用来存放下一结点地址的指针变量。
例如,可以设计这样一个结构体类型:
?
其中成员num和score是用户需要用到的数据,相当于图7.8结点中的A, B, C, D。next是指针类型的成员,它指向Student类型数据(就是next所在的结构体类型)。用这种方法就可以建立链表。见图。
图中每一个结点都属于Student类型,在它的成员next中存放下一个结点的地址,程序设计者不必知道各结点的具体地址,只要保证能将下一个结点的地址放到前一结点的成员next中即可。
下面通过一个例子来说明如何建立和输出一个简单链表。
【例】建立一个如图所示的简单链表,它由3个学生数据的结点组成。输出各结点中的数据。
?
本例是比较简单的,所有结点(结构体变量)都是在程序中定义的,不是临时开辟的,也不能用完后释放,这种链表称为静态链表。对各结点既可以通过上一个结点的next指针去访问,也可以直接通过结构体变量名a, b, c去访问。
动态链表则是指各结点是可以随时插入和删除的,这些结点并没有变量名,只能先找到上一个结点,才能根据它提供的下一结点的地址找到下一个结点。只有提供第一个结点的地址,即头指针head,才能访问整个链表。如同一条铁链一样,一环扣一环,中间是不能断开的。
p->n 得到p指向的结构体变量中的成员n的值。
p->n++ 得到p指向的结构体变量中的成员n的值,用完该值后使它加1。
++p->n 得到p指向的结构体变量中的成员n的值,并使之加1,然后再使用它。
用结构体变量和指向结构体变量的指针构成链表
链表是一种常见的重要的数据结构。下图表示最简单的一种链表(单向链表)的结构。
链表有一个“头指针”变量,图中以head表示,它存放一个地址。该地址指向一个元素。链表中的每一个元素称为“结点”,每个结点都应包括两个部分:
一是用户需要用的实际数据,
二是下一个结点的地址。
可以看到链表中各元素在内存中的存储单元可以是不连续的。要找某一元素,可以先找到上一个元素,根据它提供的下一元素地址找到下一个元素。
可以看到,这种链表的数据结构,必须利用结构体变量和指针才能实现。
可以声明一个结构体类型,包含两种成员,一种是用户需要用的实际数据,另一种是用来存放下一结点地址的指针变量。
例如,可以设计这样一个结构体类型:
?
图中每一个结点都属于Student类型,在它的成员next中存放下一个结点的地址,程序设计者不必知道各结点的具体地址,只要保证能将下一个结点的地址放到前一结点的成员next中即可。
下面通过一个例子来说明如何建立和输出一个简单链表。
【例】建立一个如图所示的简单链表,它由3个学生数据的结点组成。输出各结点中的数据。
?
动态链表则是指各结点是可以随时插入和删除的,这些结点并没有变量名,只能先找到上一个结点,才能根据它提供的下一结点的地址找到下一个结点。只有提供第一个结点的地址,即头指针head,才能访问整个链表。如同一条铁链一样,一环扣一环,中间是不能断开的。
相关文章推荐
- RecyclerView动画
- android默认打开数据连接
- 基于xml配置springmvc
- 移动端调试工具-Debuggap
- for 穷举
- Java的浮点数
- 如何估算网站日承受最大访问PV
- SpringMVC深度探险(三) —— DispatcherServlet与初始化主线
- listview滑动删除item的一个方案
- 在Linux系统中搭建Node.js开发环境的简单步骤讲解
- JSP的9个内置对象
- 基于JavaScript实现瀑布流布局(二)
- 自己封装的afnetworking数据请求
- Makefile 管理工具 — Automake and Autoconf
- 关于word2010指定位置插入页码及三线表格绘制问题
- Xutils框架的使用
- 通过改变viewport 实现网站自适应
- 第 2 章 CSS 样式基本知识
- "".indexOf()的作用,以及结果标识 1、0、-1
- st的输入输出模式