【数据结构】线性表的链式表示和实现 |
您所在的位置:网站首页 › 线性链表的实现实验心得感悟怎么写 › 【数据结构】线性表的链式表示和实现 |
1、线性表的链式存储结构 链式存储结构存储线性表数据元素的方法是把存储有数据元素的结点用指针域构成链。指针是指向物理存储单元地址的变量,我们把一个有数据元素和一个或若干个指针域组成的结构体称为一个结点。其中数据域用来存放数据元素,指针域用来构造数据元素之间的关联关系。链式存储结构的特点就是数据元素之间的逻辑关系表现在结点的链接关系上。链式存储结构的线性表称为链表。根据指针域的不同和结点构造链的方法不同,链表主要分为单链表、单循环链表和双向循环链表三种。 2、单链表单链表中构成链表的结点只有一个指向直接后继结点的指针域。 2.1 单链表的表示方法单链表节点由数据域和指针域组成:如图所示: 可以定义单链表结点的结构如下: typedef struct SingleLinkNode { ElemType data; //存放数据 struct SingleLinkNode *next; //存放指向下一个元素结点的指针 } SingleLinkNode,*SingleLinkList;其中data用来存放数据元素,next用来存放指向下一个结点的指针。单链表有带头结点和不带头结点结构两种。我们把指向单链表的指针称作头指针。头指针所指的不存放数据元素的第一个结点称作头结点。通常情况下单链表构造成带头结点的单链表,这里对不带头结点的单链表不做讨论。 如下图所示是一个带头结点的单链表结构图: 2.2 单链表的操作实现2.2.1 单链表初始化 SingleLinkList_Init(SingleLinkList &SL) SingleLinkList L ; L = new SingleLinkNode; //生成新结点作为头结点,用头指针L指向头结点 L->next = NULL; //头结点的指针域置空在初始化操作前,头指针参数L没有具体的地址值,在初始化操作时,头指针参数L才得到了具体的地址值,而这个地址值要返回给调用函数,所以此时头指针参数L要设计成指针的指针类型。 2.2.2 获取当前元素个数 SingleLinkList_Length(SingleLinkList &SL) //获取单链表中元素个数 int Singl |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |