
数据结构
DW_____
加油,做最好的自己!
展开
-
带头结点单链表
Link.htypedef 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 · 180 阅读 · 0 评论 -
不带头结点单链表
Link.htypedef 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 · 1114 阅读 · 0 评论 -
双向链表的基本操作
双向链表与单链表的最大区别就是可逆。插入(头插)删除具体代码如下:DeLink.htypedef 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 · 252 阅读 · 0 评论 -
链栈的基本操作
一、链栈链栈是一种数据存储结构,可以通过单链表的方式来实现,使用链栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。二、数据类型typedef int ELEM_TYPE;typedef struct Node{ ELEM_TYPE data; struct Node* next;}Node;typed...原创 2018-10-15 10:59:49 · 1245 阅读 · 0 评论 -
不定长顺序表
不定长顺序表与定长顺序表相比最大的特点就是可扩容代码DSeqList.h#define INITSIZE 5typedef int ELEM_TYPE;typedef struct DseqList{ ELEM_TYPE* parr; int cursize; int totalsize;}DseqList,*PDseqList;void Init(PDse...原创 2018-10-10 16:56:38 · 199 阅读 · 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 · 253 阅读 · 0 评论 -
定长顺序表
顺序表的存储结构可以构造一个定长的数组elem来存放数据,然后定义变量cursize来存放有效数据的个数,即有效长度。顺序表的代码实现SeqList.h#define ARRAY_SIZE 10typedef int ELEM_TYPE;typedef struct Seqlist{ ELEM_TYPE elem[ARRAY_SIZE]; int cursize;}S...原创 2018-10-09 16:12:14 · 215 阅读 · 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 · 371 阅读 · 0 评论