数据结构与算法
数据结构与算法
mingios
这个作者很懒,什么都没留下…
展开
-
011-数据结构与算法 字符串匹配算法
题目:有一个主串S ={a,b,c,a,c,a,b,d,c},模式串T = {a,b,d};请找到模式串在主串中第一次出现的位置提示:不需要考虑字符串大小写问题,字符串均为小写字母BF算法 (暴利解法)思路:1. 分别利用计数指针i和j指示主串S和模式T中当前正待比较的字符位置,i初值为pos,j的初值为1;2. 如果2个串均为比较到串尾,即i和j均小于等于S和T的长度时, 则循环执行以下的操作:* S[i]和T[j]比较,若相等,则i 和 j分别指示串中下一个位置,继续比较后续的.原创 2020-05-13 15:00:30 · 461 阅读 · 1 评论 -
010-数据结构与算法 栈与队列算法题集训 2
杨辉三角思路: 1. 第一层循环控制行数i : 默认[i][0] = 1,[i][i] = 12. 第二层循环控制列数j : triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]实现:int** generate(int numRows, int* returnSize){ *returnSize = numRows; int **res = (int **)malloc(sizeof(..原创 2020-05-12 14:04:31 · 143 阅读 · 0 评论 -
009-数据结构与算法 栈与队列算法题集训 1
数进制的转换将10进制的数N转为8进制思路1. 初始化一个空栈S2. 当十进制N非零时,循环执行以下操作 * 把N与8求余得到的八进制数压入栈S; * N更新为N与8的商;3. 当栈S非空时,循环执行以下操作 * 弹出栈顶元素e; * 输出e;void conversion(int N){ SqStack S; SElemType e; //1.初始化一个空栈S InitStack(&S); ...原创 2020-05-12 12:16:46 · 325 阅读 · 0 评论 -
008-数据结构与算法 循环队列
队列的状态空队列:头==尾满队列:???先打个问号假设开辟一个连续的空间假溢出此时此刻我们发现头跟尾挨在一起,插不进去数据了,明明还有4个位置,这种现象就是假溢出如果解决假溢出的问题?1 修改出入栈的方法,具体想想就应该会很麻烦2 头尾永不相遇:浪费一个节点的空间因为我们是循环队列,脑补一下循环队列的结构,应该是顺序存储代码实现循环队列的顺序存储结构typedef struct{ QElemType data[MAXSIZE]; .原创 2020-05-11 12:16:43 · 253 阅读 · 0 评论 -
007-数据结构与算法 栈
一.栈和队列的定义栈和队列是受限的线性表,具体表现为栈只能在头节点后进行插入和删除,队列是在头结点删除,尾节点插入栈:先进后出队列:先进先出二.顺序栈三.链式栈四.栈与递归的关系...原创 2020-05-10 15:39:08 · 205 阅读 · 1 评论 -
006-数据结构与算法 线性表-算法题练习
题目1 将2个递增的有序链表合并为一个有序链表;要求结果链表仍然使用两个链表的存储空间,不另外占用其他的存储空间。表中不润允许有重复的数据 eg:La{1,2,3} ,Lb{3,6,9} Lc{1,2,3,6,9}关键字: 递增有序链表 不允许有重复数据 保持递增关系(后插法) ...原创 2020-04-25 14:52:08 · 406 阅读 · 0 评论 -
005-数据结构与算法 线性表-双向链表与双向循环链表
双向链表定义它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点跟单链表的比较每次在插入或删除某个节点时, 需要处理四个节点的引用, 而不是两个 因为多一个指针域,占用内存空间更大一些 既可以从头遍历到尾, 又可以从尾遍历到头,单链表只能从头到尾定义节点typedef struct ...原创 2020-04-16 21:32:51 · 240 阅读 · 0 评论 -
004-数据结构与算法 线性表-单向循环链表
目录循环链表特点循环链表的两种状态定义结点1.1循环链表创建1.2遍历循环链表1.3 循环链表插入数据1.4 循环链表删除元素1.5 循环链表查询值循环链表特点特点是表中最后一个结点的指针域指向头结点(首元节点),整个链表形成一个环。循环链表的两种状态空表,头结点的指针域指向自己的数据域,数据域为空 非空表,最后一个结点的指针域指向头结...原创 2020-04-16 21:22:21 · 92 阅读 · 0 评论 -
003-数据结构与算法 线性表-单链表
单链表用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据特点其实就是每个物理节点增加一个指向后继节点的指针域当访问过一个节点后,只能接着访问它的后继节点,无法访问其它的节点.单链表插入和删除注意事项再次说重点单链表...原创 2020-04-16 21:14:42 · 103 阅读 · 0 评论 -
002-数据结构与算法 线性表-顺序表(顺序存储)
线性表1.1 线性表的定义线性表是最基本、最简单、也是最常用的一种数据存储结构,反映了一对一的逻辑结构补充:数据存储结构应该正确反映数据元素之间的逻辑关系,如何存储数据元素之间的逻辑关系,是实现物理结构的重点1.2 特点集合中必存在唯一的一个“第一元素”。 集合中必存在唯一的一个 “最后元素” 。 除最后一个元素之外,均有唯一的后继(后件)。 除第一个元素之外,均有唯一...原创 2020-04-01 14:21:37 · 192 阅读 · 0 评论