
数据结构
文章平均质量分 71
housen1987
这个作者很懒,什么都没留下…
展开
-
顺序查找表和索引查找表
查找表(search table)是由同一类型的数据元素(或记录)构成的集合。对查找表进行的操作有:(1)查询某个“特定的”数据元素是否存在查找表中。(2)检索某个“特定的”数据元素的各种属性。(3)在查找表中插入一个数据元素。(4)从查找表中删除某个数据元素。只做查询的操作的查找表称为静态查找表(Static Search Table)。若在查找过程中同时插入查找...原创 2012-06-09 00:34:07 · 902 阅读 · 0 评论 -
栈的应用
栈的应用举例1 数制转换十进制N和其他d进制的转换原理:N=(N div d)*d + N mod d (其中,div为整除运算,mod为求余运算)C语言求解:void conversion(int N){ sqStack S; initStack(&S); while(N){ push(&S,N%8); N = N/8; ...2012-04-17 23:19:11 · 92 阅读 · 0 评论 -
栈和队列
栈和队列是特殊的线性表。栈栈(stack)是限定在表尾进行插入或删除操作的线性表,表尾端称为栈顶(top),表头端称为栈底(bottom),不含元素的栈称为空栈。栈是后进先出(last in first out,LIFO)。栈的抽象数据定义: ADT{ 数据对象:D 数据关系:R1 基本操作: initStack(&S) 操作结...2012-04-17 21:49:27 · 114 阅读 · 0 评论 -
线性表(三)
线性表(一) 线性表(二)线性表的链式表示和实现线性表的顺序存储可以随机存取表中任一元素,缺点是在做插入或删除操作时,需要移动大量的元素。线性表的链式存储不要求逻辑上相邻的元素在物理位置上也相邻,在做插入或删除操作时,不需要移动元素,但也失去了随机存取的特点。1 线性链表用一组任意的存储单元存储线性表的数据元素。整个链表的存取必须从头指针开始,头指针指向链表...2012-04-15 12:29:28 · 97 阅读 · 0 评论 -
线性表(二)
线性表(一) 问题:有2个线性表LA,LB,现在要求组成一个新的集合A=A+B void merge(sqList *LA,sqList *LB){ int i; elemType e; for(i=1;i<=listLength(LB);i++){ e = getElem(LB,i); if(!locateElem(LA,e)){ ...2012-04-14 23:39:56 · 173 阅读 · 0 评论 -
线性表(一)
线性表的定义类型线性表(linear_list)一个线性表是n个数据元素的有限序列。一个数据元素可以由多个数据项(item)组成,这个时候把数据元素称为记录(record),含有大量记录的线性表又称为文件(file)。同一线性表中的元素必定具有相同特性,即属同一数据对象。线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时称为空表。在非空表中的每个数据元素都有...原创 2012-04-13 17:43:03 · 194 阅读 · 0 评论 -
数据结构概论和时间复杂度的简单求法
1 基本概念和术语 数据(Data)——对客观事物的符号表示,在计算机科学中指能输入到计算机中并被计算机程序处理的符号的总成。数据的含义极广,如图像、声音等都可以通过编码而归之于数据的范畴。数据元素(Data Element)——数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据项(Data Item)——数据项是数据的不可分割的最小单...2012-04-12 22:49:14 · 248 阅读 · 0 评论 -
基数排序算法实现(Java版)
import java.util.ArrayList;/** * @function:基数排序算法实现 * */public class RadixSort { // 构建一个二维数组,装载每次分配的数据 private ArrayList[] tempList = new ArrayList[10]; /** * @function:构造方法,用于初...2012-07-08 20:07:56 · 297 阅读 · 0 评论 -
二叉树
二叉树的存储1 顺序存储结构将二叉树的所有节点,按照一定的次序,存储到连续的存储单元中,这样一般情况下只能对完全二叉树实现满员存储,而对于一般二叉树,则会浪费一定的存储空间,所以顺序存储一般不适用于树。2 链式存储结构一个树节点包含3个部分:数据域(Data),左孩子(Lchild),右孩子(Rchild)。链式存储结构形成的二叉树称为二叉链表。结构声明如下:st...原创 2012-06-21 15:30:45 · 131 阅读 · 0 评论 -
串的模式匹配算法
子串定位运算又称为模式匹配(pattern matching)或串匹配(string matching)。在串匹配中,将主串称为目标串,子串称为模式串。关于串匹配的时间复杂度,在最坏的情况下:每一次合法位移后,在内循环中都要比较m个字符才能知道是不是有效位移,最坏的情况下时间复杂度是O([n-m+1]*m).1 朴素的串匹配算法int index(seqString *s...2012-06-18 20:57:26 · 233 阅读 · 0 评论 -
二叉排序树
动态查找表 动态查找表除了支持查找操作,还支持插入、删除等改变表中数据的操作。 动态查找表的表结构是在查找过程中动态生成的,即对于给定的key值,若表中存在其关键字等于key的记录,则查找成功;否则插入关键字等于key的记录。 为了方便插入和删除操作,通常采用链表、树等存储结构来表示动态查找表。1.1 二叉排序树(binary sort tree,BST)是一棵空...2012-06-16 22:30:07 · 212 阅读 · 0 评论 -
直接插入排序——C语言描述
#include <stdio.h>#define MAXSIZE 30typedef int KeyType;typedef int otherType;typedef struct{ KeyType key; otherType other;}RecordType;void straightInsertSort(RecordType R...原创 2012-04-23 09:24:16 · 196 阅读 · 0 评论