DataStructure
文章平均质量分 78
_noname
Ideas worth spreading.
展开
-
_DataStructure_C_Impl:KMP模式匹配
#include#include#include#include"SeqString.h"/*函数的声明*/int B_FIndex(SeqString S,int pos,SeqString T,int *count);int KMP_Index(SeqString S,int pos,SeqString T,int next[],int *count);void GetNext(原创 2015-08-07 00:23:59 · 1083 阅读 · 2 评论 -
_DataStructure_C_Impl:双向链表
//双向链表#include#includetypedef char DataType;typedef struct Node{ DataType data; struct Node *prior; struct Node *next;}DListNode,*DLinkList;//初始化双向循环链表int InitDList(DLinkList *head){ //hea原创 2015-08-02 22:55:53 · 584 阅读 · 2 评论 -
_DataStructure_C_Impl:一元多项式
//一元多项式#include#includetypedef struct ployn{ float coef; //存放一元多项式的系数 int expn; //存放一元多项式的指数 struct ployn *next;}PolyNode,*PolyNomial;//创建一元多项式PolyNomial CreatePolyn(){ PolyNode *p,*q,*s;原创 2015-08-02 22:57:02 · 625 阅读 · 2 评论 -
_DataStructure_C_Impl:单链表
//线性表的链式存储:单链表#include#includetypedef int DataType;typedef struct Node{ DataType data; //数据域 struct Node *next; //指针域}ListNode,*LinkList;//将单链表初始化为空。动态生成一个头结点,并将头结点的指针域置为空void InitList(Lin原创 2015-07-30 23:39:06 · 841 阅读 · 2 评论 -
_DataStructure_C_Impl:顺序表
//线性表的顺序存储:顺序表#pragma once#ifndef SeqList_H#define SeqList_H#include#define ListSize 100typedef int DataType;typedef struct{ DataType list[ListSize]; int length;}SeqList;//线性表的基本运算//线性表的原创 2015-07-30 02:42:20 · 731 阅读 · 2 评论 -
_DataStructure_C_Impl:基数排序
#include#include#include#include#define MaxNumKey 6 /*关键字项数的最大值*/#define Radix 10 /*关键字基数,此时是十进制整数的基数*/#define MaxSize 1000#define N 6typedef int KeyType; /*定义关键字类型*/typedef struct{ KeyType原创 2015-08-14 00:58:56 · 1211 阅读 · 0 评论 -
_DataStructure_C_Impl:LinkListBasedSort
#include#include#include"LinkList.h"//创建单链表void CreateList(LinkList L,DataType a[],int n){ int i; for(i=1;i<=n;i++) InsertList(L,i,a[i-1]);}//用链表实现选择排序。将链表分为两段,p指向应经排序的链表部分,q指向未排序的链表部分void原创 2015-08-14 00:57:37 · 993 阅读 · 0 评论 -
_DataStructure_C_Impl:SeqListBasedSort
// _DataStructure_C_Impl:Sort#include#include#define MaxSize 50typedef int KeyType;//数据元素类型定义typedef struct{ KeyType key; //关键字}DataType;//顺序表类型定义typedef struct{ DataType data[MaxSize]; in原创 2015-08-14 00:55:13 · 1329 阅读 · 0 评论 -
_DataStructure_C_Impl:在顺序表中查找元素
// _DataStructure_C_Impl:Search#include#include#define MaxSize 100#define IndexSize 20typedef int KeyType;//元素的定义typedef struct{ KeyType key;}DataType;//顺序表的类型定义typedef struct{ DataType li原创 2015-08-13 01:21:18 · 1441 阅读 · 0 评论 -
_DataStructure_C_Impl:哈希表
#include#includetypedef int KeyType;//元素类型定义typedef struct{ KeyType key; //关键字 int hi; //冲突次数}DataType;//哈希表类型定义typedef struct{ DataType *data; int tableSize; //哈希表的长度 int curSize; //表中关原创 2015-08-13 01:25:05 · 922 阅读 · 0 评论 -
_DataStructure_C_Impl:循环单链表
//CycList:循环单链表#include#includetypedef int DataType;typedef struct Node{ DataType data; struct Node *next;}ListNode,*LinkList;//创建一个不带头结点的循环单链表LinkList CreateCycList(int n){ DataType e; Li原创 2015-07-31 23:47:21 · 802 阅读 · 2 评论 -
_DataStructure_C_Impl:二叉排序树的查找
#include#includetypedef int KeyType;//元素的定义typedef struct{ KeyType key;}DataType;//二叉排序树的类型定义typedef struct Node{ DataType data; struct Node *lchild,*rchild;}BiTreeNode,*BiTree;//二叉排序树的查找原创 2015-08-13 01:23:40 · 1279 阅读 · 0 评论 -
_DataStructure_C_Impl:静态链表
//静态链表#include#include#define ListSize 10typedef char DataType;//静态链表结点类型定义typedef struct{ DataType data;//数据域 int cur;// 游标,类似指针域}SListNode;//静态链表类型定义typedef struct{ SListNode list[ListSi原创 2015-08-02 22:55:40 · 659 阅读 · 2 评论 -
_DataStructure_C_Impl:共享栈
// _DataStructure_C_Impl:共享栈#include#include#define StackSize 100typedef char DataType;//两个共享栈的数据结构类型定义typedef struct { DataType stack[StackSize]; int top[2];}SSeqStack;//共享栈的初始化操作void In原创 2015-08-03 23:46:51 · 641 阅读 · 2 评论 -
_DataStructure_C_Impl:链式队列
//_DataStructure_C_Impl:链式队列#include#include#define MaxSize 100typedef int DataType;typedef struct QNode{ DataType data; struct QNode *next;}LQNode,*QueuePtr;typedef struct{ QueuePtr front;原创 2015-08-06 02:38:15 · 756 阅读 · 2 评论 -
_DataStructure_C_Impl:链串
//_DataStructure_C_Impl:链串#include#include#include#define ChunkSize 4#define stuff '#'//串的结点类型定义typedef struct Chunk{ char ch[ChunkSize]; struct Chunk *next;}Chunk;//链串的类型定义typedef struct{原创 2015-08-07 00:22:06 · 1088 阅读 · 2 评论 -
_DataStructure_C_Impl:顺序串
#include#include#define MaxLength 60typedef struct{ char str[MaxLength]; int length;}SeqString;//串的赋值操作void StrAssign(SeqString *S,char cstr[]){ int i; for(i=0;cstr[i]!='\0';i++) S->str[i]原创 2015-08-06 02:40:46 · 736 阅读 · 2 评论 -
_DataStructure_C_Impl:双端队列
//_DataStructure_C_Impl:双端队列#include#include#define QueueSize 8 //定义双端队列的大小typedef char DataType;typedef struct DQueue{ //双端队列的类型定义 DataType queue[QueueSize]; int end1,end2; //双端队列的队尾指针}DQue原创 2015-08-06 02:39:22 · 900 阅读 · 2 评论 -
_DataStructure_C_Impl:堆串
#include#includetypedef struct{ char *str; int length;}HeapString;//串的赋值操作void StrAssign(HeapString *S,char cstr[]){ int i=0,len; if(S->str) free(S->str); for(i=0;cstr[i]!='\0';i++); //求cs原创 2015-08-06 02:42:13 · 782 阅读 · 2 评论 -
_DataStructure_C_Impl:只有队尾指针的链式循环队列
//_DataStructure_C_Impl:#include#include#includetypedef char DataType;typedef struct snode{ //链式堆栈结点类型定义 DataType data; struct snode *next;}LSNode;typedef struct QNode{ //只有队尾指针的链式循环队列类型定义原创 2015-08-05 02:53:56 · 2046 阅读 · 2 评论 -
_DataStructure_C_Impl:顺序循环队列
//_DataStructure_C_Impl:顺序循环队列#include#include#define QueueSize 10 //定义顺序循环队列的最大容量typedef char DataType;typedef struct Squeue{ //顺序循环队列的类型定义 DataType queue[QueueSize]; int front,rear; //队头指针原创 2015-08-05 02:52:41 · 888 阅读 · 2 评论 -
_DataStructure_C_Impl:后缀表达式
//_DataStructure_C_Impl:#include#include#define StackSize 100typedef char DataType;typedef struct{ DataType stack[StackSize]; int top;}SeqStack;//将栈初始化为空栈只需要把栈顶指针top置为void InitStack(SeqStack原创 2015-08-05 02:49:57 · 725 阅读 · 2 评论 -
_DataStructure_C_Impl:顺序队列
//_DataStructure_C_Impl:顺序队列#include#include#define QueueSize 50typedef char DataType;typedef struct Squeue{ //顺序队列类型定义 DataType queue[QueueSize]; int front,rear; //队头指针和队尾指针}SeqQueue;//将顺序队列原创 2015-08-05 02:51:12 · 951 阅读 · 2 评论 -
_DataStructure_C_Impl:链栈
//_DataStructure_C_Impl:链栈#include#includetypedef char DataType;typedef struct node{ DataType data; struct node *next;}LStackNode,*LinkStack;//将链栈初始化为空。动态生成头结点,并将头结点的指针域置为空void InitStack(Lin原创 2015-08-03 23:47:59 · 679 阅读 · 2 评论 -
_DataStructure_C_Impl:顺序栈
// _DataStructure_C_Impl:顺序栈#include#include#define StackSize 100typedef char DataType;typedef struct{ DataType stack[StackSize]; int top;}SeqStack;//将栈初始化为空栈只需要把栈顶指针top置为void InitStack(SeqS原创 2015-08-03 23:45:19 · 747 阅读 · 2 评论 -
_DataStructure_C_Impl:Floyd算法求有向网N的各顶点v和w之间的最短路径
#include#include#includetypedef char VertexType[4];typedef char InfoPtr;typedef int VRType;#define INFINITY 100000 //定义一个无限大的值#define MaxSize 50 //最大顶点个数typedef int PathMatrix[MaxSize][MaxSi原创 2015-08-12 02:03:38 · 1619 阅读 · 0 评论 -
_DataStructure_C_Impl:求图G中从顶点u到顶点v的一条简单路径
#include#pragma once#include#include#define StackSize 100typedef int DataType; //栈元素类型定义typedef struct{ DataType stack[StackSize]; int top;}SeqStack;//将栈初始化为空栈只需要把栈顶指针top置为void InitStack(Seq原创 2015-08-12 02:07:24 · 6453 阅读 · 2 评论 -
_DataStructure_C_Impl:广义表的扩展线性链表存储
#include#include#include#include"SeqString.h"typedef char AtomType;typedef enum{ATOM,LIST} ElemTag;//ATOM=0,表示原子,LIST=1,表示子表typedef struct GLNode{ ElemTag tag; //标志位tag用于区分元素是原子还是子表 union{原创 2015-08-08 17:37:41 · 960 阅读 · 2 评论 -
_DataStructure_C_Impl:稀疏矩阵十字链表存储
#include#includetypedef int DataType;typedef struct OLNode{ int i,j; DataType e; struct OLNode *right,*down;}OLNode,*OLink;typedef struct{ OLink *rowhead,*colhead; int m,n,len;}CrossList;/原创 2015-08-08 17:32:56 · 1099 阅读 · 2 评论 -
_DataStructure_C_Impl:稀疏矩阵三元组
#include#include#define MaxSize 200typedef int DataType;typedef struct{ //三元组类型定义 int i,j; DataType e;}Triple;typedef struct{ //矩阵类型定义 Triple data[MaxSize]; int rpos[MaxSize]; //用于存储三原创 2015-08-08 01:10:43 · 1300 阅读 · 2 评论 -
_DataStructure_C_Impl:Array
#include#include#include#define MaxArraySize 2typedef int DataType;typedef struct{ DataType *base; //数组元素的基地址 int dim; //数组的维数 int *bounds; //数组的每一维之间的界限的地址 int *constants; //数组存储映像常量基地址}Ar原创 2015-08-08 01:05:42 · 972 阅读 · 2 评论 -
数据结构伪C代码:6.树和二叉树
//---------------二叉树的顺序链表表示----------------#define MAX_TREE_SIZE 100 //二叉树的最大结点数typedef TElemType SqBiTree[MAX_TREE_SIZE]; //0号单元存储根结点SqBiTree bt;//---------------二叉树的二叉链表存储表示------------t原创 2014-07-15 01:26:21 · 1179 阅读 · 0 评论 -
数据结构伪C代码:栈和队列
//----------栈的顺序存储表示---------------------#define StackInitSize 100#define StackIncrement 10typedef struct { SElemType *base; SElemType *top; int stacksize; //当前已分配的存储空间,以元素为单位 }S原创 2014-06-17 21:13:01 · 1937 阅读 · 0 评论 -
数据结构伪C代码:2.线性表
//算法2.1void uniun(List &La,List Lb){ La_len=ListLength(La);//线性表的长度 Lb_len=ListLength(Lb); for(int i=1;i<La_len;i++) { GetElem(Lb,i,e);//取Lb中第i个元素,把值赋给e if(!LocateElem(La,e,equal))原创 2014-06-03 10:16:49 · 2425 阅读 · 0 评论 -
数据结构伪C代码:9.查找
typedef float KeyType;typedef int KeyType;typedef char *KeyType;//---------------------顺序查找表的顺序存储结构------------------typedef struct{ ElemType *elem; //数据元素存储空间基址,建表时按实际长度分配,0号单元留空 int原创 2014-07-24 00:20:24 · 1072 阅读 · 0 评论 -
数据结构伪C代码:8.动态存储管理
//可利用空间表的结点结构定义typedef struct WORD{ //WORD:内存字类型 union{ //head和foot分别是结点的第一个字和最后的字 WORD *llink; //头部域,指向前驱结点 WORD *uplink; //底部域,指向本结点头部原创 2014-07-21 16:21:08 · 790 阅读 · 0 评论 -
数据结构伪C代码:7.图
//--------------------图的数组(邻接矩阵)存储表示--------------------#define INFINITY INT_MAX //最大值无穷#define MAX_VERTEX_NUM 20 //最大顶点个数typedef enum {DG,DN,UDG,UDN} GraphKind; //{有向图,有向网,无向图,无向网}typedef stru原创 2014-07-16 23:03:27 · 1368 阅读 · 0 评论 -
数据结构伪C代码:5.数组和广义表
//------------数组的顺序存储表示------------#include#define MAX_ARRAY_DIM 8 //假设数组维数的最大值为8typedef struct{ ElemType *base; //数组元素基址,由InitArray分配 int dim; //数组维数 int *bounds; //数组维界基址,原创 2014-06-26 12:33:18 · 1057 阅读 · 0 评论 -
_DataStructure_C_Impl:广义表头尾链表存储
#include#include#include#include"SeqString.h"typedef char AtomType;typedef enum{ATOM,LIST} ElemTag;//ATOM=0,表示原子,LIST=1,表示子表typedef struct Node{ ElemTag tag; /*标志位tag用于区分元素是原子还是子表*/ union原创 2015-08-08 17:35:07 · 1192 阅读 · 2 评论 -
_DataStructure_C_Impl:序列构造二叉树
#include#include#include#define MaxSize 100//二叉树类型定义typedef struct Node{ char data; struct Node *lchild,*rchild;}BitNode,*BiTree;//按层次输出二叉树的结点void PrintLevel(BiTree T){ BiTree Queue[MaxSize原创 2015-08-09 23:09:57 · 868 阅读 · 1 评论