
数据结构
CV不丢人
这个作者很懒,什么都没留下…
展开
-
邻接矩阵(C语言)
邻接矩阵的创建(C语言)原创 2021-12-14 00:04:13 · 1685 阅读 · 0 评论 -
邻接表(c语言)
邻接表的创建原创 2021-12-14 00:02:48 · 1240 阅读 · 0 评论 -
二叉树详解(含各种基本操作 附代码)
本文含二叉树一下功能:二叉树节点结构创捷二叉树查找二叉树删除二叉树前序遍历中序遍历后序遍历层次遍历复制二叉树求深度求节点数求叶子节点判断二叉树是否为空代码如下:#include<stdio.h>#include<stdlib.h>typedef char ElemType;#define MAXSIZE 10// 二叉树节点结构typedef struct TreeNode{ ElemType data; //数据 struct Tr原创 2021-11-16 21:33:33 · 854 阅读 · 0 评论 -
八皇后问题详解
八皇后(C语言版)问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。思路:8*8的象棋盘 要放8个皇后 一行只能放一个皇后 每一个皇后放下后它所占的行、列、上对角线、下对角线都不能再放皇后通过 行-列+7(n-col+7)划出15(0~14)条上对角线通过行+列(n+col )划出15(0~14)条下对角线对角线可以自己在纸上画一个8 * 8的棋盘标出下标,然后画对角线用place[]存储皇后的位置,如 pl原创 2021-11-13 14:19:09 · 1192 阅读 · 0 评论 -
汉诺塔详解(超详细)
递归算法求汉诺塔(C语言版)汉诺塔:梵天创造世界的时候做了三根金刚石柱子,x y z三根柱子在x柱子上 从上往下按照从小到大顺序摞着64片黄金圆盘。梵天命令婆罗门把圆盘从x柱移到z柱并且规定,大圆盘要在小圆盘下面,一次只能移动一个圆盘。思路:用递归方式求解第一步:将n-1片圆盘从x借助z移到y第二步:将第n片圆盘从x移到z第三步:将n-1片圆盘从y借助x移到z#include<stdio.h>//将n张圆盘从x借助y移到z void move(int n,char x,c原创 2021-11-12 23:35:45 · 1918 阅读 · 0 评论 -
KMP算法详解
数据结构-KMP算法(C语言版)KMP算法是三位学者在 BF算法的基础上同时提出的模式匹配的改进算法。BF算法在模式串中有多个字符和主串中的若干个连续字符比较都相等,但最后一个字符比较不相等时,主串的比较位置需要回退。KMP算法在上述情况下,主串位置不需要回退,从而可以大大提高效率.代码如下:#include<stdio.h>#include<stdlib.h> #include<string.h>//这个获取next数组的函数有些难以理解,如果你能搞懂这个原创 2021-11-11 22:49:47 · 593 阅读 · 0 评论 -
BF(暴力)算法详解
BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。代码如下:#include<stdio.h>#include<stdlib.h>int BF(char S[],char T[]){ int i=0; int j=0;原创 2021-11-11 22:21:18 · 1380 阅读 · 0 评论 -
回文数判断和括号判断 详解(附代码实现)
栈和队列的应用-回文数判断和括号判断(C语言版)可以根据用户需求选择回文数判断或者括号判断代码如下://判断回文数//括号匹配 #include<stdio.h>#include<stdlib.h>#include<string.h>#define ElemType int#define MAXSIZE 10//定义队列 typedef struct Queue{ char *base; int front; int rear;}Queue;原创 2021-11-11 21:48:10 · 666 阅读 · 0 评论 -
一元多项式的加法详解
一元多项式的加法(c语言版)我是观看懒猫老师的视频后写的,大家有不懂的可以在评论区留言或者去某站看懒猫老师的视频代码如下:#include<stdio.h>#include<stdlib.h>#include<string.h> //定义每个元素的结构 typedef struct polynomial{ int coefficient;//系数 int exp;//指数 struct polynomial *next;}*Lin原创 2021-11-06 09:48:08 · 1132 阅读 · 1 评论 -
循环队列的基本操作实现(详细全面)
循环队列的基本操作实现预备知识判断队空:Q.frontQ.rear判断队满:(Q.rear+1)%MAXSIZEQ.front队头加一:Q->front- (Q->front+l) MAXSIZE;队尾加一:q->rear=(q->rear + 1) % LENGTH;计算队长:(q.rear-q.front+LENGTH)%LENGTH;#include<stdio.h>#include<stdlib.h>#define MAXSIZE 1原创 2021-11-01 15:44:08 · 5369 阅读 · 1 评论 -
单链表基本操作实现(详细)
数据结构单链表的基本操作实现:#include<stdio.h>#include<stdlib.h>#include <string.h>//定义节点的结构typedef struct Node{ int data; //数据域 struct Node * next; }Node,*pNode;//创建头结点 pNode InitList(){ //这样创建节点函数执行完会释放 Node L; pNode L=(pNode)mall原创 2021-11-01 15:40:40 · 430 阅读 · 0 评论 -
顺序表的基本操作实现(全面附代码)
顺序表的基本操作我用的Dev-C++编译器见代码:#include<stdio.h>#include<string.h>#include<stdlib.h>//顺序表的结构定义 typedef struct { int data[100];//顺序表占用的数组空间 int last; //记录顺序表中最后一个元素在数组中的位置 空表为0}list;void start(list l){//初始化顺序表 设置为空表 l.last=0; pr原创 2021-11-01 15:36:30 · 763 阅读 · 0 评论