代码编织梦想

<数据结构浙大>02-线性结构4 Pop Sequence-爱代码爱编程

题目 Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop s

LeetBook——链表——反转链表-爱代码爱编程

反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目范围是 [0,

线性表进阶-爱代码爱编程

一、顺序表 最大特点:逻辑上相邻的两数据元素在物理位置上也相邻 优点:随机存取,存取速度快;存储密度大,空间利用率高 缺点:预先分配,空间大小不易估计;插入删除操作效率低 #include<stdio.h> #define MaxSize 1000 typedef int ElemType;/*ElemType类型根据实际情况而定,这里假

1.5静态链表的表示与实现-爱代码爱编程

1.5静态链表的表示与实现 静态链表可用一维数组来描述,用游标模拟指针。游标的作用就是指示元素的直接后继。这里的游标的数据类型不是动态链表的指针类型,而是整型数字。 代码实现: SLinkList.h #pragma once #include <stdio.h> #include <stdlib.h> #define L

有序链表转换二叉搜索树-爱代码爱编程

题目描述: 给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜

Java实现七种【排序算法】+图解+完整代码+分析-爱代码爱编程

参考书目:《大话数据结构》 本文涉及的排序算法 一、冒泡排序(优化版)二、简单选择排序三、直接插入排序四、希尔排序五、堆排序六、归并排序(递归版)+归并排序(递归优化版)七、快速排序+快速排序(四度优化版)End.总结 一、冒泡排序(优化版) 0.基本思想:一种交换排序,两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录位置。

为什么 HashMap 的加载因子是0.75?数学的运用!-爱代码爱编程

作者:sunnylovecmc 来源:https://blog.csdn.net/sunny243788557/article/details/109603806 有很多东西之前在学的时候没怎么注意,笔者也是在重温HashMap的时候发现有很多可以去细究的问题,最终是会回归于数学的,如HashMap的加载因子为什么是0.75? 本文主要对以下内容进行

Leetcode 538 题 把二叉搜索树转换为累加树-爱代码爱编程

题目来源:https://leetcode-cn.com/problems/convert-bst-to-greater-tree/ 个人公众号:小猿君的算法笔记 题目描述 给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和

Leetcode73. 矩阵置零(C++思路与代码)-爱代码爱编程

给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ] 思路: 将每一行每一列的第一个元素设置为标识符,如果为0,那么表示这一行或者这一列有元素0。由于第

c语言描述数据结构,图的存储及遍历(矩阵/邻接矩阵;深度/广度优先遍历)-爱代码爱编程

#include<stdio.h> #include<stdlib.h> #define Maxsize 10 typedef int DataType; typedef struct Graph { DataType vertex[Maxsize]; //数组v存放顶点信息 int arc[Maxsize][Ma

1.4双向链表表示与实现-爱代码爱编程

1.4双向链表表示与实现 1、双向链表是指链表中每个结点都有两个指针域,一个指向后继结点,一个指向前驱结点。prior和next. 2、双向链表也分带头和不带头,带头操作更加方便。双向链表也有循环结构,称双向循环链表。 3、带头双向循环链表的判空条件为head->prior==head或head->next==head; 代码实现:

1.3循环单链表之约瑟夫问题-爱代码爱编程

1.3循环单链表之约瑟夫问题 循环单链表 1、与单链表类似,循环单链表也有带头和不带头。循环单链表不为空时,尾结点指针域为头结点。为空时,头指针的指针域指向它本身。 2、带头结点的循环单链表为空的判断条件是head->next==head; 3、有时为了操作方便,循环单链表中只设尾指针。 约瑟夫问题: 有n个人,编号为1----n,围成一

【QBKbupt】第十章 内部排序 C. 内部排序练习3-爱代码爱编程

#include<bits/stdc++.h> using namespace std; int main() { int cnt=0,n,num[10][101],data[101]; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&data[i])

【QBKbupt】第十章 内部排序 B. 内部排序练习2-爱代码爱编程

#include<bits/stdc++.h> using namespace std; int m; void quicksort(int s[],int a,int b) { int left=a,right=b,num; if(left<right) { num=s[left]; while(left!

【QBKbupt】第十章 内部排序 A. 内部排序练习1-爱代码爱编程

#include<bits/stdc++.h> using namespace std; void quicksort(int s[],int a,int b) { int left=a,right=b,num; if(left<right) { num=s[left]; while(left!=right)

【QBKbupt】第九章 查找 D. 查找练习4-爱代码爱编程

#include<bits/stdc++.h> int* search(int* N, int S, int T) { int* R=(int*)malloc(sizeof(int)*(2)); R[0]=-1,R[1]=-1; int l=0,r=S-1; while(l<=r) { if(N[l]!=T) l++;

【QBKbupt】第九章 查找 C. 查找练习3-爱代码爱编程

#include<bits/stdc++.h> using namespace std; struct Node { int data; Node *p; }; int main() { int n,m,t,s,a[105],b[105]; Node c[105],*current,*head; double ans1=0,ans

【QBKbupt】第九章 查找 B. 查找练习2-爱代码爱编程

#include<bits/stdc++.h> using namespace std; struct Node { int x; double y; }; int main() { Node a[105]; int t=1,n,data[105]; double p[105],ans=0; scanf("%d",&n)

【QBKbupt】第七章 图 F. 图练习6-爱代码爱编程

#include<iostream> using namespace std; void findH(int,int); const int N=21; int vis[N],a[N][N],judge; int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++) f

【QBKbupt】第七章 图 E. 图练习5-爱代码爱编程

#include<bits/stdc++.h> const int MAX=0x3f3f3f3f; using namespace std; int main() { int n,w[21][21]; scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j+