
数据结构
无意摘花
这个作者很懒,什么都没留下…
展开
-
数据结构与算法之——高斯算法
在高斯想出1+...+100那个算法之前,他老师是一遍遍循环把1到100的和计算出来的。以下是比较的普通算法与高斯算法的不同,其中gettime()是获取当前的毫秒数。#include#include "mytime.h"long normal(int max); //普通算法 从1加到100long gaosi(int max); //高斯算法 从1加到100原创 2014-02-08 16:10:55 · 3367 阅读 · 0 评论 -
数据结构与算法之——线性表的顺序存储结构
ArrayList.h/* 线性表的顺序存储结构 */#define MAXSIZE 10 //存储空间初始分配量typedef int ElemType ; //ElemType类型根据实际情况而定,这里假设为inttypedef struct { ElemType data[MAXSIZE]; //数组存储数据元素,最大值为MAXSIZE原创 2014-02-08 23:14:33 · 987 阅读 · 0 评论 -
数据结构与算法之——线性表的链式存储结构
LinkedList.h/* 线性表的链式存储结构 */typedef int ElemType ; //ElemType类型根据实际情况而定,这里假设为inttypedef struct Node{ ElemType data; struct Node * next;/* 线性表的链式存储结构 *//* 线性表的链式存储结构 *//* 线性表的链式存原创 2014-02-09 22:24:26 · 1062 阅读 · 0 评论 -
数据结构与算法之——静态链表
StaticLinkedList.h/* 静态链表 */typedef int ElemType;#define MAXSIZE 20typedef struct{ ElemType data; int cur;}Component,StaticLinkedList[MAXSIZE];#define OK 1#define ERROR 0typedef i原创 2014-02-10 15:14:31 · 770 阅读 · 0 评论 -
数据结构与算法之——顺序栈
栈:栈是限定仅能在表尾进行插入和删除操作的线性表。栈是一种特殊的线性表,它具有线性表的属性即有前驱和后继,但不同于线性表可以在任意位置插入和删除元素,它只能在表尾进行,因此先入的元素会被压入栈底,而后入的元素却会首先被弹出来。因此它是 Last In First Out即后进先出的。栈的抽象数据类型表示:ADT 栈(stack) Data 同线性表,元素具有相同的原创 2014-02-12 09:17:43 · 913 阅读 · 0 评论 -
数据结构与算法之——两栈共享存储空间
其实栈的顺序存储很方便,因为它只在表尾进行操作,不存在普通线性表插入与删除还需要移动元素的情况。同样它也有普通线性表的缺陷,即必须确定数量。然而对于两个相同类型的栈,却可以做到最大限度地利用其开辟的存储空间来进行操作。 数组有两个端点,两个栈使用这一个数组的存储区域,两个栈有两个栈底,分别为数组的始端和末端。这样在压栈的时候,是栈顶指针往中间靠拢,当两指针相遇时,则栈满。栈原创 2014-02-12 09:21:13 · 7053 阅读 · 0 评论 -
数据结构与算法--链栈
LinkedList.h/* 栈的链式存储结构--链栈 */typedef int LElemType;#define OK 1#define ERROR 0typedef int Status;typedef struct LinkedStackNode{ LElemType data; struct LinkedStackNode *next;}Linke原创 2014-02-15 00:06:37 · 848 阅读 · 0 评论 -
数据结构与算法——栈的作用及应用
作用:栈的引入简化了程序设计的问题,划分了不同的关注层次,使得思考范围缩小,更加聚焦于要解决的问题核心。反之,像数组等,因为要分散精力去考虑数组的下标增减等细节问题,反而掩盖了问题的本质。应用一:递归,斐波那契数列/* 斐波那契序列的两种表示 */ #include /* 迭代表示法 */ /* 斐波那契序列的两种表示 */ #include /* 迭代表示法 */ voi原创 2014-02-15 00:10:56 · 2365 阅读 · 0 评论