数据结构与算法
jsfantasy
虚心、实腹、弱志、强骨
展开
-
线性表之双链表基本操作
/* *姓名:刘金石 *时间2017年2月5日 *线性表之双链表基本操作 */#include #include //双链表的存储结构typedef char ElemType;typedef struct DNode{ ElemType date;//存放元素值 struct DNode *prior;//指向前驱节点 struct DNode *ne原创 2017-02-05 16:25:16 · 369 阅读 · 0 评论 -
线性表之顺序表基本操作
SqHeader.h#ifndef SQHEADER_H_INCLUDED#define SQHEADER_H_INCLUDED//顺序表的存储结构#define MaxSize 50typedef char ElemType;typedef struct{ ElemType date[MaxSize]; int length;}SqList;#end原创 2017-02-01 19:22:01 · 804 阅读 · 0 评论 -
KMP算法及改进KMP算法实现
/* *描述:KMP算法以及改进后的KMP算法实现 */#include #include #define MaxSize 100typedef struct{ char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length; //标记当前实际串长} SqString;//extern原创 2017-02-14 12:28:42 · 2206 阅读 · 0 评论 -
二叉树基本操作
#include #include #define MaxSize 100typedef char ElemType;typedef struct node{ ElemType data; //数据元素 struct node *lchild; //指向左孩子 struct node *rchild; //指向右孩子} BTNode;void CreateBTNode原创 2017-02-19 16:23:06 · 322 阅读 · 0 评论 -
串的顺序存储基本操作
#include #define MaxSize 100 //最多的字符个数typedef struct{ char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length; //标记当前实际串长} SqString;void StrAssign(SqString &s,char cstr[])原创 2017-02-07 18:00:33 · 976 阅读 · 2 评论 -
顺序串基本操作
#include #define MaxSize 100 //最多的字符个数typedef struct{ char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length; //标记当前实际串长} SqString;void StrAssign(SqString &s,char cstr[])原创 2017-02-07 17:58:18 · 5823 阅读 · 1 评论 -
栈的应用——迷宫问题
#include#define MaxSize 100typedef struct{ int i; int j; int di;}Box;typedef struct{ Box date[MaxSize]; int top;}StType;bool mgpath(int mg[10][10],int xi,int yi,int xe,int原创 2017-02-06 19:00:30 · 250 阅读 · 0 评论 -
队列之链式队列基本操作
/* 队列的链式存储结构也是通过由节点构成的单链表实现的,此时只能在 表首进行删除操作,在表尾进行插入操作。*/#include #include typedef char ElemType;//链队中数据节点的类型QNode定义typedef struct qnode{ ElemType data; struct qnode *next;}QNode;/原创 2017-02-06 17:22:50 · 633 阅读 · 0 评论 -
特殊环形队列基本操作
/* 问题:对于环形队列如果知道队头指针和队列中元素的个数。设计出这种 环形队列的基本操作。 分析: 队尾指针rear=(front+count)%MaxSize 队空条件:count==0. 队满条件:count==MaxSize。*/#include #include #define MaxSize 5typedef cha原创 2017-02-06 16:27:31 · 476 阅读 · 0 评论 -
队列之环形队列基本操作
/* 为了充分使用数组中的存储空间,把数组的首尾相连就成了环形队列 在环形队列*q中,队空条件为q->front==q->rear。队满条件为(q->rear +1)%MaxSize == q->front 入队操作为先将队尾指针增加1,然后把e放在队尾。 出队操作是先将队头指针增加1,然后取出队头元素。*/#include #include #define MaxSize原创 2017-02-06 15:53:18 · 1094 阅读 · 0 评论 -
队列之顺序队基本操作
/* 队列是一种操作受限的线性表,其限制为仅允许在表的一端插入,在表的另一端进行删除。 进行删除的一端称为队头或队首,插入元素称为入队,删除元素称为出队。 在顺序队*q中,队空条件为q->front==q->rear。队满条件为q->rear==MaxSize-1. 入队操作为先将队尾指针增加1,然后把e放在队尾。 出队操作是先将队头指针增加1,然后取出队头元素。*/#in原创 2017-02-06 15:51:07 · 1012 阅读 · 0 评论 -
栈之链式存储基本操作
#include #include //栈的链式存储结构typedef char ElemType;typedef struct linknode{ ElemType data;//数据域 struct linknode *next;//指针域}LiStack;//初始化栈void InitStack(LiStack *&s){ s=(LiStack *)原创 2017-02-05 17:42:46 · 507 阅读 · 0 评论 -
栈之顺序栈基本操作
#include #include #define MaxSize 100//顺序栈的存储结构typedef char ElemType;typedef struct{ ElemType data[MaxSize]; int top; //栈顶指针} SqStack;//初始化栈void InitStack(SqStack *&s){ s=(SqStack原创 2017-02-05 17:10:19 · 496 阅读 · 0 评论 -
线性表之链式表基本操作
LinkList.h#ifndef LINKLIST_H_INCLUDED#define LINKLIST_H_INCLUDED//单链表的存储结构typedef char ElemType;typedef struct LNode{ ElemType date;//存放元素值 struct LNode * next;//指向后继节点}LinkList;//双原创 2017-02-02 16:15:18 · 710 阅读 · 0 评论