数据结构__线性表
文章平均质量分 80
Cynical丶Gary
我们仰望着同一片天空却看着不同的地方
展开
-
C_线性表----单链表的基本操作(构表、插入、删除、倒序、输出)
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域、下面是实现链表的基本操作:单链表构造、插入结点,删除结点,链表倒序、正序输出:链表的定义:typed原创 2017-07-16 10:01:49 · 1182 阅读 · 0 评论 -
C_线性表----list双向链表容器
在编程语言中List 是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一。参考list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vect原创 2017-07-23 21:40:35 · 333 阅读 · 0 评论 -
C_线性表(ADT)-顺序表的表示和实现
基本操作的实现:单个顺序表的构造,判空,插入,删除,排序,清空,销毁,返回前驱以及后继线性表基本操作:1.InitList(&L)/*操作结果:构造一个空的线性表*/2.DestroyList(&L)/*初始条件:线性表L已存在*//*操作结果:销毁线性表L*/3.ClearList(&L)/*初始条件:线性表L已存在*//*操作结果:将L重置为空表*/4.原创 2017-07-14 14:27:07 · 7193 阅读 · 8 评论 -
C_线性表(ADT)-双向循环链表的表示和实现
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。(解释来自百度百科)下面是网上的一张双向循环链表的结构图片:双向链表定义:typedef struct DuLNode{ ElemType data;原创 2017-08-05 00:38:27 · 992 阅读 · 0 评论 -
C_线性表(ADT)-单向循环链表的表示和实现
循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。表中最后一个结点的指针域指向头结点,整个链表形成一个环。嗯下面就网上找的一张单链的循环链表单项链表定义:typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList;单向循环链表基本操作原创 2017-08-05 14:26:02 · 1593 阅读 · 0 评论 -
C_线性表----约瑟夫环问题(循环链表)
已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。这个就是约瑟夫环问题的实际场景,有一种是要通过输入n,m,k三个正整数,来求出列的序列。这个问题采用的是典型的循环链表的数据结构,就是将一个链表的尾元素指针指向队首元素。原创 2017-07-22 12:54:52 · 827 阅读 · 0 评论