数据结构与算法
穆栩萌霖
这个作者很懒,什么都没留下…
展开
-
C语言实现双链表
C语言实现双链表插入和删除,判空,算长度,翻转# include <stdio.h> # include <stdlib.h>typedef struct LNode { int data; struct LNode *prev; struct LNode *next;}Node, *NodeList;// 初始化 带头结点 bool InitList(NodeList &L) { L = (Node *)malloc(sizeof(Node));原创 2021-09-17 13:58:38 · 135 阅读 · 0 评论 -
C语言实现双链表
C语言 双链表 插入 翻转# include <stdio.h># include <stdlib.h>typedef struct LNode{ int data; struct LNode *prev; struct LNode *next;}Node, *NodeList;// 初始化 bool InitList(NodeList &L) { // 头节点 L = (Node *)malloc(sizeof(Node)); if (L==NU原创 2021-09-16 18:02:04 · 178 阅读 · 0 评论 -
C语言单链表
# include <stdio.h> # include <stdlib.h>typedef struct LNode{ int data; struct LNode *next;}Node,*NodeList;void InitList(NodeList &L) { L = (Node *)malloc(sizeof(Node)); L->next == NULL;}void addList(NodeList &L, int k)原创 2021-09-16 10:25:15 · 119 阅读 · 0 评论 -
C语言 创建单链表2.0
C语言 实现单链表 尾插法// 带头结点单链表 # include <stdio.h># include <stdlib.h>// 定义结构体typedef struct LNode { // 数据域 int data; // 指针域 指向一个节点 节点类型的指针(涉及地址划分) struct LNode *next;}Node, *NodeList; // 初始化单链表(带头结点)bool InitList(NodeList &L){原创 2021-09-13 10:17:05 · 113 阅读 · 0 评论 -
C语言 创建单链表
C语言尾插法实现创建定长度单链表//#include <iostream>// 单链表# include <stdio.h># include <stdlib.h>// typedef <数据类型> <别名>// 结构体 typedef 定义简单的别名为LNodetypedef struct LNode{ // 数据域 int data; // 指针域 节点类型 指针指向下个整个节点 st原创 2021-08-30 16:43:55 · 1845 阅读 · 0 评论 -
C语言 顺序表删除
C语言实现链表删除元素注意删除位的合法取值// 顺序表删除操作# include <stdio.h># define maxsize 10 // 定义顺序表结构体typedef struct { int data[maxsize]; int length;}SqlList; // 初始化顺序表void InitList(SqlList &L) { // 空表长度为0 L.length = 0; // 全赋值0 for (int i=0;i<10原创 2021-08-29 14:33:31 · 3516 阅读 · 0 评论 -
C语言实现顺序表
C语言使用静态数组实现顺序表# include <stdio.h># define maxsize 10 // 定义最大长度// 定义结构体typedef struct { int data[maxsize]; // 静态数组存放数据元素 int length; // 顺序表长度}SqlList; // 结构体名// 初始化一个顺序表void InitList(SqlList &L) {原创 2021-08-28 10:40:40 · 833 阅读 · 1 评论 -
数据结构研究方法
数据结构的研究方法研究数据结构的三个方面:(1)逻辑结构(2)物理结构(3)基本运算四种基本逻辑结构:1.集合结构2.线性结构3.树状结构4.网状结构四种基本物理存储结构1.顺序存储2.链式存储3.散列4.索引...原创 2021-08-27 11:58:57 · 512 阅读 · 0 评论 -
常见时间复杂度参考
时间复杂度https://zhuanlan.zhihu.com/p/50479555原创 2021-08-26 17:29:08 · 195 阅读 · 0 评论 -
两种冒泡排序(java)
冒泡排序:核心思想,滑动窗口扫过一遍,将最大或最小放到末尾图解:代码public class maopao { public static void main(String[] args) { int[] c = {78, 56, 52, 47, 19}; for(int i=0;i<c.length-1;i++) { for (int j=0;j<c.length-1-i;j++) { S原创 2021-06-24 13:05:14 · 145 阅读 · 0 评论 -
Leetcode.231.2的幂
判断一个数是否为2的n次方面试时候被其他题问懵,事后才想出来,血亏 if (number == 1) { return true; } else if (number % 2 != 0) { return false; } else { boolean i = true; while (number != 1) {原创 2021-04-16 13:23:59 · 87 阅读 · 0 评论 -
Leetcode 70.爬楼梯 java
思路:1.每次爬一个楼梯,或者爬2个楼梯,只有这两种方式,开始第一步必为1或22.列数:台阶数,方法数,步骤1阶:1:12阶:2:1[1],23阶:3:1[11],1[2],2[1]。。。。。。。。。。。。。。。1开始为二阶所有,2开始为一阶所有4阶:5:1[111],1[12],1[21],2[11],2[2]。。。。。。。1开始为三阶所有,2开始为二阶所有3.观察数字,规律已出:第n位数为前两数之和即1,2,3,5,8,13… if (n <= 3) {原创 2021-04-10 11:35:43 · 88 阅读 · 0 评论 -
C语言实现数组转换单链表
数组转单链表思路:利用结构体,实现单链表,每次新创建结构体变量,再添加节点,使上一结束节点指针指向新节点图解:1.链表为空,创建头节点,头节点同时也是尾节点2.循环插入新建的p节点,p节点的地址添加到结束节点的指针3.将添加后的p节点变为新的尾节点C语言实现代码://数组转换为单链表#include <stdio.h>#include <stdlib.h>// 创建结构体struct list{ int data; struct list原创 2020-12-31 11:05:44 · 3683 阅读 · 0 评论 -
leetcode 20有效括号
leetcode 20有效括号java思路:1.先判断长度是否为偶数,括号必须成对,长度必为偶数。2.利用循环将数组压入栈中,括号起始必为左括号。3.若不是则判断栈是否为空,栈为空直接返回false4.若不为空,判断栈顶是否与HashMap匹配,若匹配则出栈,不匹配则继续压入栈顶5.栈若为空则全部匹配为真import java.util.*;public class test02 { public static void main(String[] args) {原创 2020-12-21 16:32:13 · 180 阅读 · 0 评论 -
leetcode 20有效括号
leetcode 20有效括号思路:括号抵消1.若括号成对,则必能全部抵消2.发现一个左括号,同时压入栈一个右括号3.发现一个右括号,判断栈是否为空,为空则返回false,不为空则判断弹出的栈顶与该符号是否相同,不同则返回falseimport java.util.*;public class kuogao04 { public static void main(String[] args) { System.out.println("请输入括号:");原创 2020-12-21 16:41:03 · 93 阅读 · 0 评论