单链表的整表*创建*:思路都是先创建空表,再插入.头插法:Void CreateListHead(LinkList *L,int n){LinkList p;int i;(*L)->next=NULL;srand(time(0));//初始化随机数*L=(LinkList)malloc(sizeof...
分类:
编程语言 时间:
2015-05-12 11:09:42
阅读次数:
174
线性表的链式存储结构:除了存储数据元素信息外,还要存储它的后继元素的存储地址(指针)即数据域和指针域,两部分为存储映像即结点(node),每个结点只包含一个指针域,则为单链表把结点的第一个存储位置叫做头指针,最后一个结点指针为空NULL.头指针和头结点的异同:空链表:头结点的数据域一般是空的,但是也...
分类:
编程语言 时间:
2015-05-11 23:38:48
阅读次数:
152
今天总结栈的顺序存储结构
什么是栈?
栈是一种线性表,其特点是限定尽在表尾进行插入和删除操作,表尾栈一段也叫栈顶,另一端就是栈底了。既然栈是线性表,那么栈也就有两种存储数据的方式,顺序存储和链式存储。今天实现的是顺序存储的栈,也就顺序栈。
图示(来自百度图片):
顺序栈的实现:
栈的顺序存储还是比较简单的,就是对数组进行操作。
#include
using name...
分类:
编程语言 时间:
2015-05-11 17:56:25
阅读次数:
179
线性表的OPeration:InitList(*L):初始化操作,创建一个为L的空的线性表;ListEempty(L):判断L是否为空表,若线性表为空,则返回ture,否则返回false;ClearList(*L):将线性表清空;GetElem(L,i,*e):将线性表L中第i个位置元素值返回给e;...
分类:
编程语言 时间:
2015-05-11 17:35:46
阅读次数:
140
今天总结静态链表.
什么是静态链表?
我理解静态链表是一种伪链表,因为它没有使用指针。静态链表使用数组实现的,这个数组是一个结构体数组,结构体由数据域和指针域构成,与单链表不同的是,这个指针域并不是指针,而是一个整数,用来指向下一个结点(数组下标)。
静态链表中实际上相当于有两个链表,一个时实际数据所构成的一个链表,另一个是数组中空元素所构成的链表,称为空闲链表或备用链表,用来存放插入进来的...
分类:
编程语言 时间:
2015-05-10 15:44:25
阅读次数:
139
最近好像发疯了似的,天天蹲在实验室里面撸代码,有时候甚至连饭都不吃,慢慢了感觉身体有点吃不消了,现在是每天晚上睡不着,白天起不来啊。无奈啊,还要上课,辅导员还天天查课,也是醉了。
最近还要准备全国Java程序设计大赛的复赛,一边还要准备各门大作业,自己还在自学iOS,复习数据结构与算法,复习C语言,复习C++....................。我去,写到这里我感觉我要被吓哭了!怪不得每天晚...
分类:
其他好文 时间:
2015-05-10 09:48:11
阅读次数:
192
参考书籍:《数据结构与算法分析——C语言描述》
快速排序是在实践中最快的已知排序算法,它的平均时间复杂度O(NlogN)。当然在最坏的情况下为O(N^2),但稍加努力就可以避免这种情形。
像归并排序一样,快速排序也是一种分治的递归算法,可简单表示如下:
将数组S排序的基本算法由下列简单的四步组成。
1、数组元素至少大于或等于4个,否则直接利用插入排序完成。
2、利用特定方法(三数...
分类:
编程语言 时间:
2015-05-09 16:40:30
阅读次数:
129
今天总结线性表中的双向循环链表。
什么是双向循环链表?
看名字估计也就知道了,首相他是一个循环链表,也就是最后一个结点的指针域不为空,而是指向头结点,其次与单向循环链表相比,它是双向的。所谓双向,就是给每个结点再增加一个指针域,这个指针域指向前一个结点。
即是下面这样(来自百度图片):
为什么要用双向循环链表?
无论单链表还是单向循环链表,都只有一个指针域,它们都是直...
分类:
编程语言 时间:
2015-05-09 10:17:56
阅读次数:
228
今天总结循环单链表
什么是单循环链表?
单链表终端结点的指针域是指向空的,如果将其指向头结点,这样就形成了一个环,那么这种首尾相接的环就够成了单循环链表.
单链表中我们都是用头指针来表示的,但是在单循环链表里,用尾指针(指向最后一个节点)。为什么要这样,因为如果用头指针,那么当查找最后一个元素的时候,就要循环遍历,时间复杂度为O(n),如果用尾指针,时间复杂度为O(1),而因为是循环的,所以...
分类:
编程语言 时间:
2015-05-07 14:44:21
阅读次数:
192
今天总结单链表的实现.
什么是链表?
就是采去链式存储结构的线性表,所谓链式存储就好比火车的车厢一样,一节一节的连接起来,成为一个线性表。这种方式采用动态存储分配方式,即程序在运行时根据实际需要申请内存空间,不需要时将内存空间释放掉。
链表用一组任意的存储单元存放线性表中的各个元素,这组存储单元可以是连续的,也可以是不连续的。
什么是单链表?
单链表简单理解就是单向的,就像火...
分类:
编程语言 时间:
2015-05-06 13:23:29
阅读次数:
200