C语言
要做了不起的人Zzzcg
仰望星空,脚踏实地
展开
-
查找算法总结
顺序查找:最简单的遍历的方法,适用于各种线性表。折半查找:比顺序查找效率更高,节省一半的时间,适用于有序的线性表,使用条件是有序,其改进的算法包括插值查找和斐波那契查找法。索引顺序查找:介于折半查找和顺序查找之间的一种算法,适合动态变化且结点数量较多的表。二叉排序树:用于树中结点的查找,特点是左儿子的值一定小于父亲的值,右儿子的值大于父亲的值,左右子树也分别是二叉排序树。这样的数据结构...原创 2020-01-02 15:19:18 · 1696 阅读 · 0 评论 -
图的遍历DFS和BFS代码实现
图的深度优先遍历是树的先序遍历的延伸,先序遍历是DFS的特殊情况。从图中任选一个顶点v,访问后开始随意选一个邻接点,从新的邻接点开始进行DFS,以此类推,这是一个递归的过程,直到遍历完图中所有结点。实际上,递归算法的本质就是一个栈,递归算法消耗大量的内存存储临时变量和中间状态,但是代码更简单。(至于用不用递归,就看实际需求吧)图的非递归深度优先遍历,引入一个数组和一个栈,数组visit[]...原创 2019-12-25 20:56:23 · 2382 阅读 · 0 评论 -
图的几种表示方法
图数据结构的表示方法大致分为四种,邻接矩阵、邻接表、十字链表、多重邻接表。邻接矩阵是最容易理解的表示方法,优点是简单易懂,缺点是可能会占用很多存储空间,且没有任何意义,空间复杂度有向图是n^2,无向图是n(n-1)/2,因为无向图矩阵是对称的,只需要存储一半且不包含对角线即可。邻接矩阵的存储优化可以通过矩阵优化来实现(具体可以看矩阵的压缩方法)。邻接表就是更加灵活,节省存储空间空间复杂度有...原创 2019-12-25 13:33:58 · 5111 阅读 · 0 评论 -
树的表示方法以及先、中、后序遍历以及求叶子结点个数和树的深度代码C代码
树的概念及性质暂时略树的表示方法图形表示法:直观清晰易于理解。广义表表示法:不常用。左孩子右兄弟表示法:可以将多叉树转化为二叉树的一种表示方法,而二叉树更适合计算机表示。(也就是说一般遇到多叉树,转化成二叉树)二叉树及性质略二叉树的存储结构顺序存储用一个数组来存储二叉树,结合二叉树的性质,可以保存树的结点之间的关系。最适合完全二叉树和满二叉树,如果是一般二叉...原创 2019-12-17 10:16:39 · 2428 阅读 · 1 评论 -
顺序队列和链式队列的C语言实现
老规矩,简单的算法就不做其他解释了,直接上代码。首先是顺序存储SeqQueue.h头文件#ifndef _SEQQUEUE_H#define _SEQQUEUE_H#define MAXSIZE 50typedef struct Queue * SeqQueue;struct Queue{ int front; //队伍头 int rear; //队伍尾 int da...原创 2019-11-20 20:37:43 · 2204 阅读 · 1 评论 -
栈的链式结构以及中缀表达式转后缀表达式(逆波兰式)C语言实现
栈的数据结构就不多说了,后进先出,只有一个出口。最典型的应用就是中缀表达式转后缀表达式,因为计算机不能识别人类所认知的中缀表达式,逆波兰式多用于编译器实现、自然语言处理这些常用的领域。下面介绍中缀转后缀的具体过程。比如1+3*(2+5)转化成后缀表达式是:1325+*+,转化算法为:1、对于数字,直接输出2、对于符号: 左括号:进栈,不管栈中是否有元素 运算符:若此时栈为...原创 2019-11-13 18:21:26 · 1932 阅读 · 1 评论 -
黑色星期五C语言实现
问题描述:已知1998年1月1日是星期4,输入一个1998年之后的年份,输出本年所有的黑色星期5日期。(黑色星期五指的是既是13日,又是星期五)代码:#include<stdio.h>//整体思路://只需要判断每个月13号是否是星期五就可以了。那怎么看这天是不是星期5呢?//可以计算这一天距离已知的98年1月1日有多少天,那天是星期四,天数+3再模7,结果是几就是星期几。是...原创 2018-10-29 22:20:50 · 11193 阅读 · 10 评论 -
C语言实现集合运算(交并差补)
C语言入门,写的不好多多指教!//输入两个整数集合A、B,求出交集、并集以及B在A中的余集,输入时按照大小顺序输入。#include<stdio.h>#define MAX 1000//最大输入个数int bubbleSort(int *A,int len)//冒泡排序{ int i,j,t; for(i = 0;i < len-1;i++) {...原创 2018-11-14 10:38:56 · 27449 阅读 · 7 评论