数据结构
DW_____
加油,做最好的自己!
展开
-
带头结点单链表
Link.h typedef int ELEM_TYPE; typedef struct Node { ELEM_TYPE data; struct Node* next; }Node,*Link; void Init(Link phead); //初始化单链表 static Node* BuyNode(ELEM_TYPE val); //申请新的节点 bool InsertTail...原创 2018-10-11 15:10:16 · 151 阅读 · 0 评论 -
不带头结点单链表
Link.h typedef int ELEM_TYPE; typedef struct Node { ELEM_TYPE data; struct Node* next; }Node,*PNode; void Init(PNode* phead); PNode BuyNode(ELEM_TYPE val); bool InsertTail(PNode* phead,ELEM_TYPE...原创 2018-10-11 16:10:37 · 1077 阅读 · 0 评论 -
双向链表的基本操作
双向链表与单链表的最大区别就是可逆。 插入(头插) 删除 具体代码如下: DeLink.h typedef int ELEM_TYPE; typedef struct DNode { ELEM_TYPE data; struct DNode* next; struct DNode* perv; }DNode,*PDNode; void Init(PDNode sl)...原创 2018-10-12 20:00:49 · 229 阅读 · 0 评论 -
链栈的基本操作
一、链栈 链栈是一种数据存储结构,可以通过单链表的方式来实现,使用链栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。 二、数据类型 typedef int ELEM_TYPE; typedef struct Node { ELEM_TYPE data; struct Node* next; }Node; typed...原创 2018-10-15 10:59:49 · 1213 阅读 · 0 评论 -
不定长顺序表
不定长顺序表 与定长顺序表相比最大的特点就是可扩容 代码 DSeqList.h #define INITSIZE 5 typedef int ELEM_TYPE; typedef struct DseqList { ELEM_TYPE* parr; int cursize; int totalsize; }DseqList,*PDseqList; void Init(PDse...原创 2018-10-10 16:56:38 · 177 阅读 · 0 评论 -
从尾部开始到头部打印单链表
要求不可以破坏单链表的结构! 思路:运用递归的方法,将每一个结点放入栈中(进栈),当phead->next = NULL时,出栈,打印。 代码 void Print_Reserve(Link phead) { if(phead->next == NULL) { return ; } Print_Reserve(phead->next); printf("...原创 2018-10-15 11:19:57 · 225 阅读 · 0 评论 -
定长顺序表
顺序表的存储结构 可以构造一个定长的数组elem来存放数据,然后定义变量cursize来存放有效数据的个数,即有效长度。 顺序表的代码实现 SeqList.h #define ARRAY_SIZE 10 typedef int ELEM_TYPE; typedef struct Seqlist { ELEM_TYPE elem[ARRAY_SIZE]; int cursize; }S...原创 2018-10-09 16:12:14 · 181 阅读 · 1 评论 -
朴素算法与KMP算法
朴素算法 #include <iostream> using namespace std; int BF(string s1, string s2, int pos) { int i=pos; int j=0; while(i<s1.length() && j<s2.length()) { if(s1[i] == s2[j]) { ...原创 2019-04-02 21:35:44 · 350 阅读 · 0 评论