博客 RSS 訂閱

GVenusLeo - [數據結構] 03 - 棧和隊列

從數據結構角度看,棧和隊列也是線性表,其特殊性在於棧和隊列的基本操作是線性表操作的子集,它們是操作受限的線性表,因此,可稱為限定性的數據結構。但從數據類型角度看,它們是和線性表大不相同的兩類重要的抽象數據類型。由於它們廣泛應用在各種軟件系統中,因此在面向對象的程序設計中,它們是多型數據類型。 1 棧 1.1 抽象數據類型棧的定義 棧(stack)是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧

數據結構 , , 隊列

收藏 評論

半夏之沫 - 多線程學習-Disruptor隊列

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

disruptor-pattern , 多線程 , 隊列

收藏 評論

huaweichenai - laravel實現隊列

一:隊列配置 隊列的配置文件放置在config/queue.php文件中,laravel框架中支持的隊列驅動有:sync, database, beanstalkd, sqs, redis,null對應着:同步(本地使用)驅動,數據庫驅動,beanstalkd ,Amazon SQS ,redis,null 隊列驅動用於那些放棄隊列的任務 1:隊列相關配置 (1):隊列驅動配置 'default'

supervisor , php , laravel , 隊列

收藏 評論

我有切糕 - 算法 - 棧與隊列 - 用棧組成隊列

力扣 232題 用棧實現隊列 請你僅使用兩個棧實現先入先出隊列。隊列應當支持一般隊列支持的所有操作(push、pop、peek、empty): 實現 MyQueue 類: void push(int x) 將元素 x 推到隊列的末尾 int pop() 從隊列的開頭移除並返回元素 int peek() 返回隊列開頭的元素 boolean empty() 如果隊列為空,返回 true ;否則,返

算法 , , 隊列

收藏 評論

福 - BlockingQueue - 基於TransferStack的SynchronousQueue

ThreadPoolExecutor以BlockingQueue存儲待執行任務,包括SynchronousQueue、LinkedBlockingQueue和ArrayBlockingQueue,今天的目的是源碼角度深入研究SynchronousQueue。 之後計劃是繼續研究LinkedBlockingQueue和ArrayBlockingQueue,搬開所有絆腳石之後再開始線程池。 基本概念#

多線程 , JAVA , 阻塞隊列 , 隊列

收藏 評論

月亮給蒙娜麗莎 - 棧和隊列

棧和隊列 一、關於模擬棧使用何種模型 1.順序表:尾插尾刪很快,緩存利用率高,但是要擴容 2.單鏈表:使用鏈表頭作為棧頂來插入刪除數據也很快 3.帶頭雙向循環鏈表:也可以,時間也是O(1) 二、棧的模擬實現 //"stack.h" typedef int type; typedef struct stack { type* a; int top; int capacity;

數據結構 , , 隊列

收藏 評論

測試菜鳥 - 數據結構與算法

一、算法 1.1、算法基礎 概念:算法是獨⽴存在的⼀種解決問題的⽅法和思想 算法的特性: 輸入:算法具有0個或多個輸⼊ 輸出: 算法⾄少有1個或多個輸出 有窮性: 算法在有限的步驟之後會⾃動結束⽽不會⽆限循環,並且每⼀個步驟可以在可接受的時間內完成 確定性:算法中的每⼀步都有確定的含義,不會出現⼆義性 可⾏性:算法的每⼀步都是可⾏的,也就是説每⼀步都能夠執⾏有限的次數完成 1.

, 雙向鏈表 , 鏈表 , 數據結構和算法 , 隊列

收藏 評論

進階的Farmer - Java延遲隊列

應用開發過程中,我們常常需要用到延時任務的地方,最近在工作遇到了一個需求,用UDP發送報文,發送後30s後要是還沒有收到回報報文,就對對於報文進行重發。 類似於訂單超時未支付取消訂單一樣,可以有很多解決方法,我這裏採用其中一種,java的延時隊列來實現。 用這篇筆記簡易記錄一下實現過程。 什麼是DelayQueue DelayQueue 是按照元素的延時時間排序的隊列。元素必須實現 Delayed

定時任務 , 多線程 , JAVA , 隊列

收藏 評論

呂秀才 - 深入淺出Java多線程(十三):阻塞隊列

引言 大家好,我是你們的老夥計秀才!今天帶來的是[深入淺出Java多線程]系列的第十一篇內容:AQS(AbstractQueuedSynchronizer)。大家覺得有用請點贊,喜歡請關注!秀才在此謝過大家了!!! 在現代多核CPU環境中,多線程編程已成為提升系統性能和併發處理能力的關鍵手段。然而,當多個線程共享同一資源或訪問臨界區時,如何有效地控制線程間的執行順序以保證數據一致性及避免競態條件

jvm , 多線程 , JAVA , 阻塞隊列 , 隊列

收藏 評論

威哥愛編程 - 用Redis延時隊列搞定訂單超時業務

Redis延時隊列是一種用於在特定時間後執行任務的消息隊列。它在許多場景中非常有用,比如訂單超時自動關閉、定時提醒等。在Redis中,通常使用Sorted Set(有序集合)來實現延時隊列,因為Sorted Set可以按照分數進行排序,非常適合用來存儲和檢索到期時間,今天V哥來聊一聊Redis延時隊列,歡迎各位小哥一起討論。 以下是Redis延時隊列的詳細介紹,包括原理、數據結構、實現方式以及Ja

redis , java-ee , JAVA , 分佈式 , 隊列

收藏 評論

vivo互聯網技術 - 高性能無鎖隊列 Disruptor 核心原理分析及其在i主題業務中的應用

作者:來自 vivo 互聯網服務器團隊- Li Wanghong 本文首先介紹了 Disruptor 高性能內存隊列的基本概念、使用 Demo、高性能原理及源碼分析,最後通過兩個例子介紹了 Disruptor 在i主題業務中的應用。 一、i主題及 Disruptor 簡介 i主題是 vivo 旗下的一款主題商店 app,用户可以通過下載主題、壁紙、字體等,實現對手機界面風格的一鍵更換和自定義。 D

內存 , 緩存 , 隊列

收藏 評論

今夜有點兒涼 - 線程池線程隊列如何選擇

在手寫線程池時,通常選擇使用 有界隊列 或 無界隊列,具體選擇哪一種取決於具體的應用場景和需求。下面是每種隊列的優缺點,並解釋為什麼在手寫線程池時通常選擇其中的某些隊列。 1. 有界隊列(ArrayBlockingQueue) 使用場景:對於大多數場景,尤其是當任務數量較為穩定或可控時,有界隊列 是一個較好的選擇。它通常用於大多數生產環境中的線程池設計中。 為什麼使用:有界隊列的最大優

線程池 , blockingqueue , 隊列

收藏 評論

白穹雨 - 基於PHP進程控制與Redis隊列的異步任務實踐——解決Excel導入接口超時問題

問題背景與解決方案 問題場景 在實現Excel數據導入功能時,遇到一個典型的生產者-消費者場景: 主流程:Excel文件解析 → 數據校驗 → 數據庫事務寫入 附加流程:將成功數據推送給第三方系統 當第三方接口響應緩慢時(實測平均耗時8-12秒),導致整體接口響應時間超出前端等待閾值,造成以下問題: 前端顯示系統錯誤(HTTP 500) 實際業務數據已完整入庫 用户體驗與數據一致性

thinkphp6 , redis , 異步請求 , 隊列 , 後端

收藏 評論

夨落旳尐孩 - Leetcode 430. 扁平化多級雙向鏈表

430. 扁平化多級雙向鏈表 寫在前面: 最近事情比較多,馬上要準備期末考試了,現在是在複習。然後又有數據庫課設和計算機組成原理課設,好多事情要做,還有馬上就要考六級筆試了,每天都要刷英語題,但是做算法題我是一定會堅持下去的,希望大家可以和我一起努力,謝謝大家。 原題鏈接: https://leetcode.cn/problems/...leetcode 430.扁平化多級雙向鏈

遞歸 , 算法 , leetcode算法 , c++ , 刷題

收藏 評論

來了老弟 - JS從扁平array轉tree

有時我們需要從扁平的數組結構(flat array),根據id,和pid構建出樹形數組結構(tree array),這種情形經常出現在嵌套的目錄結構,如下圖: 或者企業的部門架構,也會出現上面的類似結構。 類似上面的情景,假如我們有以下的數據: let entries = [{ "id": "12", "parentId": "0", "text": "Man",

遞歸

收藏 評論

小碼code - Java遞歸實現評論多級回覆

最近工作需要做一個評論功能,除了展示評論之外,還需要展示評論回覆,評論的回覆的回覆,這裏就用到了遞歸實現評論的多級回覆。 評論實體 數據庫存儲字段: id 評論id、parent_id 回覆評論id、message 消息。其中如果評論不是回覆評論,parent_id 為-1。 創建一個評論實體 Comment: public class Comment { /** * i

遞歸 , JAVA

收藏 評論

liler - 假如有n個台階,一次只能上1個台階或2個台階,請問走到第n個台階有幾種走法?

2023王道作業week4_day12————走樓梯 1.題目: 假如有n個台階,一次只能上1個台階或2個台階,請問走到第n個台階有幾種走法?為便於讀者理解題意,這裏舉例説明如下:假如有3個台階,那麼總計就有3種走法:第一種為每次上1個台階,上3次;第二種為先上2個台階,再上1個台階;第三種為先上1個台階,再上2個台階。輸入為n,輸出為走到第n個台階有幾種走法 2.思路 設台階為n個 當n=1時,

遞歸 , c

收藏 評論

爆裂Gopher - 反轉鏈表的兩種解法

反轉鏈表可以用兩種方法來實現,一種是常見的迭代法,還有一種方法就是遞歸,下面來分析一下具體是怎麼實現的。 迭代法 思路: 初始化一個變量來存儲前驅節點pre,從頭節點開始遍歷鏈表,每遍歷一個節點,就將該節點的後驅節點指向pre,完成了反轉,然後更新pre的值為當前節點以便下一個節點的使用,遍歷完以後以前的尾節點就是新的頭節點。 func (head *Node) reverse() *Node {

遞歸 , 算法 , 鏈表 , go

收藏 評論

大道無情我有情 - 【每日一題】漢諾塔

漢諾塔:漢諾塔(又稱河內塔)問題是源於印度一個古老傳説的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞着64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。 漢諾塔問題分三步: 將 0 ~ n -1 號圓盤從 from 柱子移動到 other 柱子。 將

遞歸 , 算法 , 面試

收藏 評論

鍵盤大蝦 - 簡單聊聊:遞歸,緩存,分治,回溯

一、初識遞歸 遞歸函數 = 終止條件 + 遞歸關係 終止條件: 當大問題被拆解成能輕鬆解決的小問題時,運行終止條件中的邏輯 遞歸關係: 定義如何將大問題拆解為小問題 例子:小名跑步。 例如:小名跑4公里,可以分為(跑1km+再跑3km)- (跑1km+再跑2km)- (跑1km+再跑1km)- (跑完全程) 實現: public void running(int di

遞歸 , 緩存 , 回溯法 , 分治

收藏 評論

水冗水孚 - 力扣之 4 的冪 & 3 的冪 & 2 的冪(遞歸思想)

題目描述 給定一個整數,寫一個函數來判斷它是否是 4 的冪次方。如果是,返回true;否則,返回false。 整數n是 4 的冪次方需滿足:存在整數x使得n == 4x 示例 1: 輸入: n = 16 輸出: true 示例 2: 輸入: n = 5 輸出: false 示例 3: 輸入: n = 1 輸出: true 力扣原題目地址 4 的冪:https://leetcode.cn/probl

leetcode , 遞歸

收藏 評論

雲綺棠兮 - 每日算法題--- 爬樓梯(利用JS實現)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢? 示例 1: 輸入:n = 2 輸出:2 解釋:有兩種方法可以爬到樓頂。 1. 1 階 + 1 階 2. 2 階 示例 2: 輸入:n = 3 輸出:3 解釋:有三種方法可以爬到樓頂。 1. 1 階 + 1 階 + 1 階 2. 1 階 + 2 階 3. 2 階 + 1 階

遞歸 , 前端

收藏 評論

豫見世家公子 - js遞歸遍歷數組並判斷數組中的每一項如果都不為空則返回true,只要有一項為空則返回false

js遞歸遍歷數組並判斷數組中的每一項如果都不為空則返回true,只要有一項為空則返回false。一開始看到這樣的場景我就覺得很簡單沒難度,可真正上手才發現並不那麼簡單,而且想要讓代碼健壯就又複雜了些。於是經過一個小時的努力加不斷修改、增補,總算實現了自己想要的一個方法。 代碼如下: const isArrayEmpty = arr = { if (!Array.isArray(arr) ||

數組 , 遞歸 , 前端 , Javascript

收藏 評論

健兒 - 多級數組Tree如何做搜索

兩種方案 1、數組打平,根據搜索字符在打平數組裏去filter出滿足條件的node節點,但此時被篩選的節點只有子節點,然後再通過被篩選出的子節點去找對應的父節點,然後拿到結果後轉成tree結構 優點:思路簡單,打平數組用了遞歸,好理解 缺點:找父節點的時候相對麻煩。 2、寫一個遞歸算法,滿足條件就返回tree 比如有一個簡單個tree const treeData = [ {

遞歸 , tree , 算法 , 前端

收藏 評論