
算法与数据结构
文章平均质量分 73
the striver
这个作者很懒,什么都没留下…
展开
-
图的存储结构和算法—创建,输出,遍历(DFS,BFS),销毁
图的存储结构邻接矩阵存储邻接表存储三级目录邻接矩阵存储邻接表存储三级目录原创 2021-05-26 18:58:24 · 4993 阅读 · 1 评论 -
串的模式匹配——暴力匹配和KMP匹配算法
文章目录1.暴力匹配(BF算法)2.KMP算法1.暴力匹配(BF算法)暴力匹配,也称为简单匹配算法,采用穷举的思想,从主串的第一个字符开始和模式串中第一个字符比较。若相等,则依次比较后续字符,如果不相等,模式串回溯为第一个字符,从主串的第二个字符开始重新和模式串比较,实现如下:#include<stdio.h>int BF(char *s,char *t)//s为主串,t为模式串 { int i = 0,j = 0; while(s[i]!='\0'&&t[j]!原创 2021-03-31 11:31:51 · 2058 阅读 · 2 评论 -
Ackerman阿克曼函数的递归与非递归(栈)实现
文章目录1.Ackerman阿克曼函数定义2.Ackerman函数实现2.1递归实现2.2非递归实现1.Ackerman阿克曼函数定义定义如下:2.Ackerman函数实现2.1递归实现对三种情况进行判断,进行递归即可int Akm1(int m,int n){ if(m==0) return n+1; else if(n==0) return Akm1(m-1,1); else return Akm1(m-1,Akm1(m,n-1));}2.2非递归实现首先定义A原创 2021-03-25 16:15:53 · 4930 阅读 · 4 评论 -
线性表的链式存储结构——链表及其操作(创建,查找,插入,输出,删除)
文章目录1.单链表的建立1.1头插法1.2尾插法2.链表基本操作1.单链表的建立1.1头插法1)从一个空表开始,创建一个头结点。2)依次读取数组a中的元素,生成新节点。3)将新节点插入到当前链表的表头上,直到结束为止,插入过程如下图所示。typedef struct LNode{ int data; struct LNode *next;//存储后继节点位置的指针域,用next表示 }LinkNode;头插法代码如下,由数组元素a创建单链表Lvoid CreatListF(Lin原创 2021-03-13 15:57:44 · 11612 阅读 · 1 评论 -
线性表的顺序存储结构——顺序表及其操作
文章目录1.线性表:1.1线性表的定义及逻辑表示2.线性表的顺序存储结构——顺序表2.1顺序表定义2.2建立顺序表2.3顺序表的基本操作1.线性表:1.1线性表的定义及逻辑表示线性表是一个具有相同特征的数据元素的有限序列,线性表的逻辑表示为:( a1,a2,…,ai,ai+1,…,an )其中 ai(1≤i≤n) 表示第i(i表示逻辑位序)个元素2.线性表的顺序存储结构——顺序表2.1顺序表定义线性表的顺序存储结构是把线性表中的所有元素按照顺序存储方法进行存储,如下图所示2.2建立顺序表原创 2021-03-10 21:20:29 · 1079 阅读 · 1 评论