ICode9

精准搜索请尝试: 精确搜索
  • 【数据结构与算法】栈 stack2022-05-14 05:31:07

    栈的简介 栈是一种线性的逻辑结构,可依赖数组和链表这两种物理结构实现,是一种FILO的结构。以下是生活中遇到的栈的结构:       栈的形式化定义为 栈(Stack)简记为 S,是一个二元组,顾定义为S = (D, R)其中:D 是数据元素的有限集合;R 是数据元素之间关系的有限集合。   栈顶指针保存

  • 基数排序2022-04-20 11:32:03

    后面会解答自己在写时的问题 import java.io.BufferedInputStream; import java.util.Arrays; import java.util.Scanner; /** * @description: 为什么要开10个结点空间? * 为什么后面data数组迭代时需要用链表一直往后迭代 *

  • 约瑟夫环2022-01-31 17:31:09

    基于python的约瑟夫环 思路一:递归 # 约瑟夫环:递归 def KillYuesefu(n,m): if(n == 1): return 0 return (KillYuesefu(n - 1, m) + m ) % n def main(): for num in range(1,11): lastindex=KillYuesefu(num,8)+1 print(lastindex) i

  • Leetcode 1971. Find if Path Exists in Graph [Python]2021-11-23 23:59:26

    BFS 从start遍历到end,每一次que弹出节点是end,返回true,否则,把此节点加入到seen set中,并入队。遍历完成后,未找到end节点,代表和start直接或间接相连的节点中没有end节点。返回false。注意特殊情况,只有一个节点时。 class Solution: def validPath(self, n: int, edges: List

  • PyQt5线程队列-----ThreadLoop2021-11-21 21:03:11

    import sysimport osfrom PyQt5.QtCore import QObject, QDateTimefrom PyQt5.QtWidgets import QApplicationfrom PyQt5.QtGui import QGuiApplication"""模块路径加到当前模块扫描的路径里"""sys.path.append(os.path.dirname(__file__))# import numpy as np

  • 从零开始学算法---自定义循环单链表2021-10-06 15:02:09

    有这样一道算法题, 假设有20个人围成一个圈,现在从第一个人开始报数,数到3的那个人出列,下一个人继续从1开始报数。。。。如此循环,最后剩下的人是谁? 首先我们定义一个单向循环链表 前文(从零开始学算法--自定义单链表 - 倒霉的菜鸟 - 博客园 (cnblogs.com))中已经自定义了单链表, 单向循

  • C++实现前缀树(字典树) 可以用来处理查找字符串问题 例如:10w屏蔽词 替换用户违法词语成**2021-09-27 13:34:31

    大佬写的前缀树详解:https://zhuanlan.zhihu.com/p/28891541 C++实现 #include <iostream> #include<string> #include<vector> using namespace std; class TrieNode{ public: int count;//以当前单词结尾的单词数量 int prefix;//以该节点之前的字符串为前缀的单词数量 v

  • jsPlumb开发流程设计器2021-09-16 13:33:53

    前言 jsPlumb是一款开源软件,但jsPlumb toolkit是收费的。 本文主要使用jsPlumb实现一些简单的流程设计功能。 基础学习 首先引入jsplumb.min.js。 <script src="https://cdn.jsdelivr.net/npm/jsplumb@2.8.0/dist/js/jsplumb.min.js"></script> 然后编写代码如下: <html lang="e

  • leetcode 202 快乐数2021-09-02 21:00:52

    虽然是一道简单题,但是简单的基础是对这个数学问题有足够的认识,最重要的就是要知道,不论多大的数,最终都会回到243以下,因为最大的三位数99经过一次操作后便是243,而更大的数操作后数位会不断减少,最后回到243以下。知道这一点是比较关键的,因为可以把所有数分为两类,一类是可以到达1的,一

  • 剑指Offer - 12_删除链表的节点2021-08-01 22:31:13

    题目描述 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 示例 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 思路 定义

  • 关于链表的细枝末节 (含面试题)2021-06-302021-06-30 22:59:02

    package com.h.linkedlist; /** * @Auther: Hao * @Date:2021/6/27 */ public class SingleLinkedListDemo { public static void main(String[] args) { SingleLinkedList singleLinkedList = new SingleLinkedList(); Node node1 = new Node(1, &

  • JavaExample09-单向链表的倒置2021-06-26 01:01:47

    JavaExample09-单向链表的倒置 1.原理 将单向链表倒置的难点是单向链表的每个节点只能指向一个节点,如果直接将链表中某一个节点指向其前一个节点,那么就找不到后面的节点了。 所以我们需要定义指针来进行操作。 定义三个指针curNode、preNode、nextNode,分别代表当前节点,当前节点的

  • 【数据结构】青大王卓版 —— 笔记022021-04-10 22:35:17

    单链表代码实现: #include <stdio.h> #include <malloc.h> #include <stdlib.h> typedef enum { true = 1, false = 0 } boolean; typedef struct Data { int item1; char item2; } * PDATA, Data; typedef struct Node{ Data data; s

  • 基于双向链表和hashmap的LRU算法实现2021-03-16 13:30:56

    基于双向链表和hashmap的LRU算法实现 什么是LRU LRU缓存淘汰算法就是一种常用策略。LRU的全称是Least Recently Used,也就是说我们认为最近使用过的数据应该是有用的,很久都没用过的数据应该是无用的,缓存满了就优先删除那些很久没有用过的数据。 代码 #include<iostream> #includ

  • 链表翻转2021-03-03 14:02:27

    ListNode* ReverseList(ListNode* pHead) { if (pHead == NULL) { return NULL; } ListNode pHeadNew(0); pHeadNew.next = pHead; ListNode* curNode = pHead; ListNode* nextNode = pHead->next; while (nextNode != NULL) { curNode->next = nextNod

  • 【Java容器源码】LinkedHashMap 基于链表的迭代器源码分析2021-02-20 19:05:19

    前篇:【Java容器源码】LinkedHashMap 实现 LRU 策略源码分析 在上一篇文章,我们说了,LinkedHashMap 继承自 HashMap,而 HashMap 提供了基于逐桶遍历策略的 KeyIterator、ValueIterator、EntryIterator,来分别对 key、value、entry 进行迭代(可以参考这篇文章)。 而 LinkedHashMap

  • swift数据结构2020-11-20 15:01:16

    一、栈 // // Stack.swift // DataStructure // // Created by dzq_mac on 2020/8/26. // Copyright © 2020 dzq_mac. All rights reserved. // import Foundation struct Stack<T> { fileprivate var array:[T] = [] public var isEmpty:Bool{

  • Java 单向链表模拟2019-09-13 18:43:07

    链表是有序的列表 链表是以节点的方式来存储的,各个节点不一定是连续存储的 分为带头节点的链表和没有头节点的链表 头节点不存放具体数据 单向链表: 其中每一个节点包含一个存储数据的data,一个指向下一个节点的变量 class Team { int no; String leader; publi

  • GridView树状结构显示2019-08-16 16:57:39

    下面的树形结构代码需要GridVIew中的数据要求是按照上下级关系已经排列好的顺序,比如:   GridViewID ParentID Name 1 0 父1 2 1 父1子1 3 1 父1子2 4 3 父1子2孙1 5 3 父1子2孙2 6 0 父2 7 6 父2子 父子项关系用递归函数实现  protected void gvList_RowDataBound(objec

  • LeetCode第25题思悟——K 个一组翻转链表(reverse-nodes-in-k-group)2019-08-15 21:42:15

    LeetCode第25题思悟——K 个一组翻转链表(reverse-nodes-in-k-group) 知识点预告 重复性操作的处理方法:使用双重循环和递归的方法处理; 边界变量的选择:简单变量较好; 题目要求 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链

  • 174、 删除排序链表中的重复元素 II2019-07-20 09:36:50

    题目描述: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 首先定义一个根节点,dummy,然后next指向head,之后进入循环,然后我们需要做的就是不断

  • HDU-2444-The Accomodation of Students(二分图判定,最大匹配)2019-07-09 23:00:07

    链接: https://vjudge.net/problem/HDU-2444#author=634579757 题意: There are a group of students. Some of them may know each other, while others don't. For example, A and B know each other, B and C know each other. But this may not imply that A and C know

  • 【ACM训练三】深度优先搜索与广度优先搜索2019-07-07 15:06:23

    广度优先搜索 定义 大神讲解链接:https://blog.csdn.net/raphealguo/article/details/7523411 相关知识 队列:先进先出 大神讲解链接:https://www.cnblogs.com/linuxAndMcu/p/7735444.html 例: struct cor //利用结构体构造点 { int x,y; cor(){} //无参构造函数; 初始化 co

  • 删除链表中重复的节点2019-04-12 18:54:34

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5   解题思路: 使用三个指针:preNode指向值没有重复的最后一个节点、nowNode当前的节点、nextNode当前节点的下一个节点。 最开

  • 链表2019-02-25 15:52:23

    链表的概念: 链表属于一种数据结构,链表可以保存多个数据,以节点的形式出现,每个节点都可以保存数据,而且每个节点除了可以保存数据之外还必须有对下一个节点的引用 链表是HashMap的实现原理之一,是HashMap的基础 public class NodeDemo02 { public static void main(String[] a

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有