![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
小棒和你一起学Java
Java程序员,混迹职场,尝试沉淀一些内容,让Java开发变成自己的基本功。
展开
-
数据结构算法-二叉树
二叉树判定问题 二叉树判定是否是排序二叉树: 算法思想:中序遍历二叉树,若前驱始终小于当前节点,则是排序二叉树 int predt = -9999; //定义全局变量,始终作为前驱 int JuBST(BiTree bt) { int btl,btr; //1.空树是排序二叉树 if (bt==NULL) return 1; else{ //2.判断左子树是否是二叉排序树并将结果返回 btl=JuBST(bt->lchild); //3.判...原创 2021-08-21 16:05:07 · 1166 阅读 · 0 评论 -
数据结构-排序
插入排序 直接插入排序 希尔排序 交换排序 冒泡排序 快速排序 选择排序 简单选择排序 堆排序 归并排序 分配排序原创 2021-07-01 21:43:11 · 120 阅读 · 0 评论 -
DS冲刺3
SuperKey4- 单链表 ⚫ 单链表查找+插入和删除问题【超级基础】 ⚫ 单链表合并问题【超级重点】 ⚫ 单链表逆置【高频考点】 ⚫ 链表排序+去重 ⚫ 链表交集问题【递增有序链表】【新型考点】【若无序,先排序,再交集】灵活一点 ⚫ 单链表最大值问题【递归】 ⚫ 循环链表【约瑟夫问题】【超级重点】-【数组||链表实现】-见“经典问题” ⚫ 之前的手写代码,再过一遍 1.单链表的结点类型定义 typedef struct LNode { int data; struct LNode*next;原创 2021-07-01 21:34:26 · 166 阅读 · 0 评论 -
数据结构-栈和队列(用栈实现表达式求值)
用栈实现表达式求值 小结:“用栈求中缀表达式值”较复杂【已基本搞定】,只要此处搞定,“用栈求前缀/后缀表达式值”,就不是问题;“用栈求前缀表达式值”和“用栈求后缀表达式”部分细节相反,代码描述基本相同。 “用栈求中缀表达式值”,需要考虑:算子,运算符,括号,问题; “用栈求后缀/前缀表达式值”,需要考虑:算子,运算符,不需要考虑括号问题; 所以:相比较而言,对于计算机而言,“用栈求后缀/前缀表达式值”,更加高效; 用栈求中缀表达式值: 原则: 创建两个栈,栈1和栈2;从左到右,依次遍历中缀表达原创 2021-07-01 21:27:48 · 961 阅读 · 0 评论 -
数据结构-单链表
1.单链表的结点类型定义 typedef struct LNode { int data; struct LNode*next; }LNode,*LinkList; 2.单链表头插法 算法思想:1.创建头结点指向空结点;2.循环创建结点p,p->next指针指向L->next;L->next=p->next. LinkList ListInsertHead(LinkList &L) //LinkList:意味着最终返回LinkList链表; Linkli原创 2021-07-01 21:19:39 · 1282 阅读 · 0 评论 -
数据结构-查找
查找技术 线性表的查找技术-二分查找 前提:数据有序排序+顺序表 int BiSearch(int s[],int n,int target) { int low=0,high=n-1,index=-1;int mid; while(low<=high) { mid=(low+high)/2; if(target<s[mid]) high=mid-1; else if(target>s[mid]) ...原创 2021-03-24 13:45:29 · 117 阅读 · 0 评论 -
数据结构-图&排序&查找(旧)
邻接矩阵(数组表示法) 邻接矩阵的空间复杂度:O(n^2) 算法思想:用一个一维数组存储各个顶点,用一个二维数组(邻接矩阵)存储各顶点之间的邻接关系(也就是边) (1)确定图的顶点个数和边的个数;(2)输入顶点信息存储在一维数组vertex中;(3)初始化邻接矩阵arc;(4)依次输入每条边存储在邻接矩阵中-4.1:输入每条边邻接的顶点x,y;-4.2:邻接矩阵x行y列置为1;邻接矩阵y行x列置为1; void Mgraph(DataType a[],int n,int e) { //(原创 2021-03-24 13:44:42 · 189 阅读 · 0 评论 -
CRAZY CODE
1.从键盘输入10个数,输出其中最大数和最小数 算法思想: (1)数组存储输入数据; (2)变量min和max初始化为第一个元素值,遍历数组,比较大小并交换数值,输出; void PrMinMax() { int a[10],min,max,i; for(i=0;i<10;i++) //1.输入10个数值存入数组 scanf("%d",&a[i]); min=max=a[0]; for(i=1;i<10;i++){ //2.遍历比较,将最小值存于min,将最大原创 2021-03-24 13:43:42 · 111 阅读 · 0 评论