数据结构和算法
文章平均质量分 70
无
码的艺术家
https://linktr.ee/Codmn_Artist | 软件开发工程师 | C/C++、Python、JavaScript | 工业互联网、量化、区块链、AI |
展开
-
【教程】Leetcode 必知必会常用函数(C 语言版)
示例// 一维数组// 二维数组// 为第一行(维)申请空间i < 10;i++) {// 为第二行(维)申请空间。原创 2024-08-25 11:12:08 · 827 阅读 · 0 评论 -
考研复试面试问答--数据结构篇
基本概念什么是数据结构数据结构如何存储数据,组织数据以表现出数据之间关系的一门学科数据,数据元素,数据项,数据对象数据是客观事物的符号表示,数据项是某个数据主体(数据元素)的属性,数据对象相同性质的元素集合什么是算法完成某一个事务的步骤和顺序数据的逻辑结构和物理结构逻辑结构:线性结构,树形结构,图形结构物理结构:顺序结构,链式结构线性表单链表单链表可以方便的在尾部插入结点(设置尾指针的单链表),但不支持高效的表尾删除操作(因为要删除某个节点,必须要知道前一个结点,所以单链表不原创 2021-03-27 22:02:32 · 973 阅读 · 0 评论 -
时间复杂度选题
1.设n是描述问题规模的正整数,则下列程序片段的时间复杂度是()i=n*n;while(i!=1) i=i/2;A. O(log2nlog_2nlog2n)B. O(n)C. O(n\sqrt{n}n)D. O(n2n^2n2)【解析】答案:A...原创 2019-11-28 14:49:12 · 1397 阅读 · 0 评论 -
散列表平均查找长度计算题
【408-2019年 8】现有长度为11且初始为空的散列表HT,散列函数是H(key) = key %7,采用线性探查(线性探测再散列)法解决冲突将关键字序列87,40,30, 6,11,22,98,20依次插入到HT后,HT查找失败的平均查找长度是A. 4 B.5.25C.6D.6.29答案:C解析:1. 构造散列表根据散列函数 H(key) = key %7 以及线性再探测...原创 2019-11-25 16:27:56 · 16539 阅读 · 5 评论 -
常见的平均查找长度总结
// 部分图片源自网络视频教程1. 平均查找长度(ASL)pi 是查找到某个元素的概率(probability)ci 是查找到这个元素时已经比较的次数,如,查找在 10 个数中查找第 5 个数,其比较的次数是多少(包括和第 5 个数比较的次数)2. 顺序查找的 ASL2. 折半查找 ASL折半查找的 ASL 利用二叉判定树计算NOTE:每个结点的比较次数之和,即该结点所在...原创 2019-10-01 15:54:43 · 62839 阅读 · 7 评论 -
【教程】简单入门邻接表
初学邻接表会觉得邻接表很难记忆,尤其是其数据结构部分,下面我们简单介绍一下邻接表。1. 大体的认识首先给出一个有向图和它的邻接表。给出其数据结构的表示// 边表的结构 typedef struct ArcNode{// 存储该顶点对应的下标 int adjvex;// 指向的下一跳指针 struct ArcNode *nextarc; }ArcNode;...原创 2019-09-28 14:40:06 · 2686 阅读 · 2 评论 -
树,森林,二叉树之间转换的口诀记忆
树,森林和二叉树的转换并不难,但是其绕来绕去的转换却很麻烦,尤其是在面临 考试的时候,很容易把自己绕昏,这里总结以下用口诀的方式加强各种转换的记忆。1. 树和森林->二叉树口诀同级加线:同一层次的结点连线越级去线:不同层次的结点只保留最右的孩子的连线长子在左,兄弟在右:加去线完成后,调整生成的二叉树的结构。长子作为左结点,原来同一层级的兄弟结点依次作为右结点森林转二叉树...原创 2019-09-27 15:11:38 · 5789 阅读 · 1 评论 -
kmp 的 next 数组和 nextval 数据求解
// 本篇仅为学习笔记// 参考《大话数据结构》1. next 数组当 j=1,2 时,其 next 数组的值固定为 0,1当 j>2 时,比较从模式串(匹配串)T 的第 1 位到 j-1 位的数字相同情况。若有 n 个相同,则 next 的值为 n+1PS:其中匹配的时候,前后缀不能完全匹配。2. nextval 数组nextval 数组建立在已经求得 next 数组的基础...原创 2019-09-12 15:47:41 · 281 阅读 · 0 评论 -
二叉树遍历的方法
本文所提供的示例代码仅采用递归的方式实现,非递归的方式并未在本文中给出。原创 2019-06-28 18:53:34 · 274 阅读 · 0 评论 -
静态链表的基本操作
本博文仅作学习使用,您可以访问更详细的笔记。#include <stdio.h>#include <stdlib.h>#define MAXSIZE 1000typedef int Status;typedef int ElemType;typedef struct{ ElemType data; int cur; }Component,Stati...原创 2019-06-22 20:18:27 · 821 阅读 · 2 评论 -
单链表的基本操作
本博文仅记录学习使用。#include <stdio.h>#include <stdlib.h>// typedef struct Node{...}Node;// 在学习 C 语言的时候,我们直到 struct 后面的 Node 是可以// 省略的,但是这里必须加上,因为在结构体内部定义了后驱尾// 该结构,这个时候,在运行代码的时候,最后的末尾的 Node ...原创 2019-06-22 16:28:27 · 413 阅读 · 0 评论 -
顺序表的基本操作
2019-6-22 简单更新笔记。原创 2019-05-13 20:39:57 · 867 阅读 · 5 评论 -
C语言指针,结构体和文件练习题
指针部分1.从键盘输入n(个数不限)个整形数字,放到数组PArray中,然后调用函数int *Calc(int *PA,int Num);计算出数组中所有元素的和返回给main函数,并将其输出。注意:只能在/start/和/end/之间添加代码。注意:冒号全部使用英文的。#include <stdio.h>#include <stdlib.h>int *Calc......原创 2019-04-26 22:46:18 · 9898 阅读 · 1 评论 -
极简理解算法理解 --冒泡排序
题外话本篇讲解主要是面对冒泡排序的初学者,讲解的时候比较细腻,可能会有点冗长,最后会给出冒泡的关键记忆点,以便在编程时快速实现。冒泡排序的思想冒泡排序就是通过每次相邻的两位数进行比较,把较大的数往右边移动一位,每次都比较相邻的两位,直到该行最大的数移动到最右边。用同样的方式继续对该行中第二大,第三大,第 n 大的数进行类似的操作,最终得到由小到大的排序。(由大到小的排序方式与此类似,下面的讲...原创 2019-03-28 09:41:35 · 644 阅读 · 1 评论 -
C 语言中的结构体(数据结构)
结构体是在数据结构中经常使用的一类,下面对结构体进行一些知识的补充。原创 2018-10-15 09:47:33 · 3347 阅读 · 3 评论 -
顺序表的 C 语言实现
#include <stdio.h>#include <stdlib.h>#define OK 1#define OVERFLOW 0#define ERROR -1#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int ElemType;typedef struct {// 定义数组存...原创 2018-10-07 16:36:23 · 252 阅读 · 0 评论 -
二叉树遍历中,已知前序和中序(或者中序和后序),求二叉树的题目
通过前序(后序)找到根节点,在中序中分开左右孩子结点集合以此类推,再在左右孩子结点按照 1 的方式重复进行。原创 2018-07-30 20:53:40 · 641 阅读 · 0 评论