链表,指针

来源:互联网 发布:windows xp msdn 下载 编辑:程序博客网 时间:2024/05/01 19:43
我们常常要为结构动态地分配内存,这就需要指向结构类型变量的指针,定义指向结构类型变量指针的方法与定义其它类型(如int型、float型)变量指针的方法类似。我们知道:结构类型变量访问其成员要用"﹒"运算符,而结构类型指针访问结构成员要用"->"运算符,它的语法为:

   指针变量->成员名


一个指针变量当用来指向一个结构变量时,便称之为结构指针变量。结构指针变量中的值是所指向的结构变量的首地址

结构的首地址就是结构的第一个成员的地址。内存填充只会出现在各成员之后。

通过结构指针便可访问该结构变量,这与数组指针和函数指针的情况是相同的。
   定义结构指针的一般形式为:
   结构名 *指针变量名;



以下源自谭浩强:

结构体指针

所谓结构体指针就是指向结构体数据的指针,一个结构体变量的其实地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么,这个指针变量就指向该结构体变量。指针变量即可以指向结构体变量,也可以指向结构体数组中的元素。但是,指针变量的基类型必须与结构体变量的类型相同。

struct student*pt;     /*pt可以指向struct student类型的数据*/



如果p指向一个结构体变量,以下三种形式等价:

1、结构体变量.成员名

2(*p)。成员名

3   p ->成员名



单链表简介

链表中的数据是以节点来表示的,每个结点的构成:元素(数据元素的映象) +指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
以“结点的序列”表示线性表称作线性链表(单链表)
链表的具体存储表示为:
① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)
② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))

2、链表的结点结构
┌───┬───┐
│data │next │
└───┴───┘
data域--存放结点值的数据域
next域--存放结点的直接后继的地址(位置)的指针域(链域)


3、头指针head和终端结点指针域的表示
单链表中每个结点的存储地址是存放在其前趋结点next域中,而开始结点无前趋,故应设头指针head指向开始结点。
注意:
链表由头指针唯一确定,单链表可以用头指针的名字来命名。
指针域里面保存的是指向下一个结点的指针,建立头结点的时候,一个元素也没有,所以头结点的指针域设为null,这样可以很方便的检测到链表是空的

终端结点无后继,故终端结点的指针域为空,即NULL









0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一级注册消防工程师招聘 注册消防工程师难考吗 考一级消防工程师有用吗 消防工程师难度 一消防工程师 一级消防工程师考试难度 一级消防工程师好考吗 消防工程师待遇 注册消防工程师一级二级区别 一级注册消防工程师好考吗 注册消防工程师好不好考 一级消防工程师难度 二级注册消防工程师考试科目 二级消防考试时间 一级消防工程师招聘 陕西二级消防工程师报名时间 2017消防工程师考试时间 消防工程师代报名 消防技术综合能力 一级注册消防工程师报考条件 河北二级消防工程师报名时间 二级消防工程师报名条件 消防员考试报考条件 消防技术实务 一级注册消防工程师报名时间 消防安全工程师考试时间 消防注册工程师报考条件 2017一级消防工程师报名时间 二级消防考试科目 辽宁消防工程师报名时间 一级消防工程师免考条件 注册消防工程师考哪几门 注册消防工程师考试题型 湖南消防工程师报名时间 注册消防工程师免考条件 消防注册工程师报名条件 山东消防工程师 安徽消防工程师 初级消防工程师 一级消防工程师条件 一级消防工程师价格