数据结构再学习
文章平均质量分 84
小白yige
每天一点正能量
展开
-
数据结构再学习--数组实现链表
链表一般情况下都是用指针实现的,但是某些语言根本没有提供指针操作,我们可以用数组模拟出来。如下,定义了一个结构体。包含了一个nextIdx表示在数组中下一个元素的位置,data表示存储的数据。在把这个结构体组成的数组定义为一种数据结构,数组中第0位不存数据,它的nextIdx表示下一个新的节点的索引。数组中最后一个元素也不存内容,它的nextIdx存储的是链表的头结点在数组中的索引,data表示的原创 2016-06-09 00:13:19 · 940 阅读 · 0 评论 -
数据结构再学习--栈的链表实现
栈是一种很基本的数据结构,就是一个线性表和栈索引值,因为线性表可以用数组和链表实现,这里的是用链式线性表实现了一个操作。在某些特殊的情况下很可能需要把两个栈合成一个栈,两个指针从两端向中间靠拢。所有完整代码:https://github.com/xiaobai1993/XBDataStructNote #include "XBLinkStack.h" void initLinkStac原创 2016-06-09 01:24:00 · 521 阅读 · 0 评论 -
数据结构再学习---线性表
线性表是最简单的数据结构,可以用数组实现,也可以使用链表实现.分别就是连续存储和链式存储。 顺序存储: 在存或者读取数据的时候线性复杂度都为O(1),插入或者删除操作都为O(n),顺序存储结构需要提前确定线性表的长度范围,不然很容易造成空间浪费。 链式存储: 在插入或者删除某个节点需要先定位节点的位置,时间复杂度为O(n),但是如果需要同时插入或者删除多个元素,顺序存储结构每次操原创 2016-05-29 12:44:45 · 470 阅读 · 0 评论 -
数据结构再学习--队列
队列遵循着先入先出的原则,由一个线性表和两个保存头尾索引的变量组成,为了节省空间和提高效率,可以把队列做成循环队列。使得移除的数据留下的空间可以循环利用,而仅仅失去一个位置用来处理判断队列是否为满。 下面是队列和循环队列的实现 // 普通的队列 void initXBQueue(XBQueue*q)//初始化队列 { q->front=-1; q->rear=-1;原创 2016-06-19 23:45:44 · 381 阅读 · 0 评论