
数据结构
文章平均质量分 62
非常有趣!!
咩咩_10538769
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【数据结构】有向无环图
总结规律有向无环图中,未知变量不能重复,比如上例,只会有一个a、b、c、d、e,但符号个数不变,做题时,我们先根据表达式画出最原始的图,然后再逐步简化,保证变量不重复,即可得到有向无环图最少的顶点个数。有向无环图若一个有向图中不存在环,则称为有向无环图,简称DAG图。比如有一棵树长这样,我们会发现它有重复的地方。还是有重复的地方,再次合并。...原创 2022-07-19 15:30:03 · 1021 阅读 · 0 评论 -
【数据结构】数组与稀疏矩阵
1、数组的存储假如有一个二维数组a[m][n],第一个数据元素a[0][0] 存储地址为 loc(a[0][0]),每个元素所占存储单元为k,则按行存储 loc(a[i][j]) = loc(a[0][0]) + ( i*n + j) * k例:同理可得按列存储 loc(a[i][j]) = loc(a[0][0]) +( j*m +i) * k特殊矩阵的压缩(1)第一类:特殊矩阵的压缩存储(2)第二类:稀疏...原创 2022-03-03 21:10:54 · 957 阅读 · 0 评论 -
【数据结构】 字符串模式匹配
模式匹配目前有两种方法: BF算法和KMP算法BF算法思路:从目标串的第一个字符和模式串的第一个字符开始,依次比较每个字符,如果相同指针同步后移比较后续字符,如果不同i指针后移一个,j指针回到第一个字符重新匹配,若匹配成功就返回模式串t中第一个字符在目标串中的位置,失败返回0代码:int index(Sqstring s,Sqstring t){ int i=j=1; //下标从1开始 while(i<=s.length&&j<=t...原创 2022-02-28 13:21:47 · 1666 阅读 · 0 评论 -
【数据结构】链栈相关算法总结
1. 假设用I、O表示入栈和出栈操作,栈的初态和终态都为空时合法,设计一个算法判断是否合法区分:判断带头节点的栈空:lst->next=NULL判断不带头节点的栈空: lst=NULL代码int judge(char a[],int n) { //n为元素个数 int i; LiStack *lst; InitStack(LiStack *&lst); //先初始化栈 for(i=0;i<n;i++){ if(A[i]=='I') pu...原创 2021-11-09 15:39:01 · 643 阅读 · 0 评论 -
【数据结构】详解栈的应用之表达式求值
首先明白:前缀表达式:符号在前,如+ab中缀表达式:符号在中间,如a*b后缀表达式:符号在最后,如ab-举例:求5+7*3*(2+1)思路:准备两个栈,将所有的数字放入左栈,所有的符号放入右栈中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。(删除)5.遇到其他运算符:加减乘除:弹出所有优先原创 2021-11-04 16:24:58 · 11282 阅读 · 10 评论 -
有序单链表的归并多种思路
方法一://方法一: 创建第三个表 void Merge(LinkList *L1,Linklist *L2,Linklist *&L3){ LinkList *p=L1->next,*q=L2->next;*r,*s; L3=(LinkList *)malloc(sizeof(LinkList)); //只要用尾插法的时候,一定要增加一个尾指针指向尾节点 r=L3; while(q!=NULL&&p!=NULL){ if(p->data&.原创 2021-08-05 21:14:02 · 405 阅读 · 0 评论