数据结构
张多阔
这个作者很懒,什么都没留下…
展开
-
数据结构链表基本的增删改查源码
#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node *next;}Node;//初始化一个节点 Node* Init(){ Node *list; list = (Node*)malloc(sizeof(Node)); list->next = NULL; return list;}//求链表长度 int len(Node *list){ in原创 2021-12-22 21:02:38 · 362 阅读 · 0 评论 -
数据结构--串的基本操作
#include<stdio.h>#include<stdlib.h>#define Maxsize 255typedef struct sstring{ char ch[Maxsize]; int length;}SString;void InitSString(SString &str){ str.length = 0;}bool IsemptySString(SString &str){ if(str.length == 0){ re.原创 2021-09-02 11:00:38 · 156 阅读 · 0 评论 -
数据结构-kmp
原创 2021-09-01 15:43:58 · 86 阅读 · 0 评论 -
数据结构--中缀表达式求值c语言代码实现
/* 中缀表达式求值也就是 1、中缀表达式转后缀表达式 2、后缀表达式求值 合并 */#include<stdlib.h>#include<stdio.h>#define Maxsize 10typedef struct node{ char data[Maxsize]; int top;}Stack;bool Isempty(Stack &s){ if(s.top == -1){ return true; } return false;原创 2021-08-31 20:45:14 · 3229 阅读 · 3 评论 -
数据结构--中缀表达式转后缀c语言代码实现
#include<stdlib.h>#include<stdio.h>#define Maxsize 10typedef struct node{ char data[Maxsize]; int top;}Stack;bool Isempty(Stack &s){ if(s.top == -1){ return true; } return false;}bool IsFull(Stack &s){ if(s.top+1 == Maxsi原创 2021-08-31 20:31:32 · 240 阅读 · 0 评论 -
数据结构--后缀表达式求值
/* 1、 从左往右扫描下一个元素,直到处理完所有元素 2、 若扫描到操作数则入栈,并回到1,否则执行3, 3、 若扫描到运算符,则弹出两个栈顶元素,执行相应运算,运算结果压回栈顶,回到1。 */#include<stdio.h>#include<stdlib.h>#define Maxsize 50typedef struct stack{ char data[Maxsize]; int top;}Stack;/* 以下为栈的基本操...原创 2021-08-31 12:00:26 · 592 阅读 · 0 评论 -
数据结构--括号匹配
![在这里插入图片描述](https://img-blog.csdnimg.cn/55020f16a6b343e1bd0e84a104dd0a8e.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5byg5aSa6ZiU,size_20,color_FFFFFF,t_70,g_se,x_16代码实现//最后出现的左括号最先被匹配,用栈的特性,//遇到左括号就入栈,遇到右括号就.原创 2021-08-30 17:44:09 · 462 阅读 · 0 评论 -
数据结构--判断栈顺序的合法性
合法性判断代码实现#include<stdio.h>#include<stdlib.h>#define Maxsize 7typedef struct stack{ int data[Maxsize]; int top;}Stack;typedef struct quere{ int data[Maxsize]; int rear,front;}Quere;void InitStack(Stack &s){ s.top = -1;}void I原创 2021-08-30 16:18:51 · 97 阅读 · 0 评论 -
数据结构--链式队列的基本操作
/* 分为带头结点与不带头结点,与单链表类似 ,再单独定义队头队尾指针即可 */#include<stdio.h>#include<stdlib.h>typedef struct linknode{ int data; struct linknode *next;}LinkNode;typedef struct{ LinkNode *rear,*front;}LinkQuere; /* 节点初始化 */bool InitLinkNode(LinkNod.原创 2021-08-29 20:48:49 · 240 阅读 · 0 评论 -
数据结构--队列的基本操作
队空条件:尾 == 头队满条件:(尾+1)%Maxsize == 头;若是题目硬性要求不能有多余节点,则结构体应该加入一个变量判断队里是否有元素,或者是元素是否满原创 2021-08-29 09:29:54 · 149 阅读 · 0 评论 -
数据结构--共享栈
一块内存,两头是两个栈#include<stdio.h>#include<stdlib.h>#define Maxsize 10 typedef struct stack{ int data[Maxsize]; int top0; int top1;}Stack;void Initstack(Stack &s){ s.top0 = -1; s.top1 = Maxsize;}//栈满判断条件是top0 + 1 = top1bool pushstack原创 2021-08-28 20:32:21 · 86 阅读 · 0 评论 -
数据结构--顺序栈基本操作
与顺序表差不多,不过多赘述#include<stdio.h>#include<stdlib.h>#define Maxsize 10typedef struct stack{ int data[Maxsize]; int top; //栈顶指针 }Stack;void Initstack(Stack &s){ s.top = -1;} bool pushStack(Stack &s,int data){ //入栈 if(s.top == Ma原创 2021-08-28 20:08:58 · 93 阅读 · 0 评论 -
数据结构--双链表的基本操作
#include<stdio.h>#include<stdlib.h>typedef struct dnode{ int data; struct dnode *prior,*next;}DNode;int length(DNode *Dl){ int length = 0; while(Dl->next != NULL){ Dl = Dl->next; length++; } return length;}bool lengthOver(原创 2021-08-28 09:56:54 · 115 阅读 · 0 评论 -
数据结构链表头插法
#include<stdlib.h>#include<stdio.h> typedef struct node{ int data; struct node *next;}Node,*LNode;bool Initlist(Node* &l){ l = (Node*)malloc(sizeof(Node)); if(l == NULL) return false; l->next = NULL; return true;}void add(No原创 2021-08-27 16:19:20 · 103 阅读 · 0 评论 -
链表的尾插法
一 直接寻找到最后进行插入如下列代码fristadd()函数所示二 标记尾指针,如addlist()函数所示#include<stdlib.h>#include<stdio.h>typedef struct node{ int data; struct node *next;}Node,*LNode;void Initlist(Node* &l){ l = (Node*)malloc(sizeof(Node)); l->next = NULL;}原创 2021-08-27 15:43:42 · 239 阅读 · 0 评论 -
数据结构--顺序表的插入删除
#include<stdio.h>#define Size 10typedef struct list{ int data[Size]; int flag;}List;void add(List &l,int data){ l.data[l.flag] = data; l.flag++;}void insertlist(List &l,int data,int flag){ if(l.flag < flag){ l.data[flag] = dat原创 2021-08-26 10:34:11 · 206 阅读 · 0 评论 -
顺序表--动态分配
顺序表的动态分配#include<stdio.h>#include<stdlib.h>#define Initsize 10typedef struct seqlist{ int *data; int MaxSize; int length;}Seqlist;void InitList(Seqlist &l){ //初始化 l.data = (int*)malloc(Initsize*sizeof(int)); //分配是个int型空间,相当于a[10];原创 2021-08-25 22:21:18 · 140 阅读 · 0 评论 -
数据结构链表的直接插入排序
数据结构复习总代码部分#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node *next;}Node;Node* Init(){ Node *list; list = (Node*)malloc(sizeof(Node)); list->next = NULL; return list;}int len(Node *list){ int lengt原创 2021-08-25 20:27:48 · 612 阅读 · 0 评论