原创 二叉樹遍歷詳解(遞歸遍歷、非遞歸棧遍歷,Morris遍歷)

一、前言 《二叉查找樹全面詳細介紹》中講解了二叉樹操作:搜索(查找)、遍歷、插入、刪除。其中遍歷深度優先遍歷(DFS)按照實現方法可以分爲:遞歸遍歷實現、非遞歸遍歷實現、Morris遍歷實現,文中只給了代碼,沒有對實現過程進行講解,本文將

原创 二叉樹平衡(AVL樹)

一、前言 《二叉查找樹全面詳細介紹》中講解了二叉樹操作:搜索(查找)、遍歷、插入、刪除。《二叉樹遍歷詳解(遞歸遍歷、非遞歸棧遍歷,Morris遍歷)》詳細講解了二叉樹遍歷的幾種方法。《二叉樹平衡(有序數組創建)》和《二叉樹平衡(DSW算法

原创 二叉樹平衡(DSW算法)

一、前言 《二叉查找樹全面詳細介紹》中講解了二叉樹操作:搜索(查找)、遍歷、插入、刪除。《二叉樹遍歷詳解(遞歸遍歷、非遞歸棧遍歷,Morris遍歷)》詳細講解了二叉樹遍歷的幾種方法。《二叉樹平衡(有序數組創建)》通過了一種構建平衡二叉樹的

原创 二叉查找樹全面詳細介紹

一、前言 重新梳理整理歸納二叉搜索樹。主要參考《C++數據結構與算法》。   二、定義 二叉排序樹(Binary Sort Tree),又稱二叉查找樹(Binary Search Tree),亦稱二叉搜索樹。是數據結構中的一類。在一般情況

原创 二叉樹平衡(有序數組創建)

一、前言 《二叉查找樹全面詳細介紹》中講解了二叉樹操作:搜索(查找)、遍歷、插入、刪除。《二叉樹遍歷詳解(遞歸遍歷、非遞歸棧遍歷,Morris遍歷)》詳細講解了二叉樹遍歷的幾種方法。本文介紹一種二叉樹平衡構建方法。   二、思路 根據二叉

原创 並查集(Union-Find)算法全面詳解

一、前言 在看一個算法題時,其中一種解法用到了並查集,並查集在《算法第四版——1.5案例研究: union-find 算法》中有講解,這裏按照自己的理解記錄一下並查集。   二、用途 並查集用於判斷連個點所在的集合是否屬於同一個集合,若屬

原创 服務器框架——內存管理

一、介紹 內存管理模塊用於保存其他模塊中的數據申請和釋放,讓服務器中其他模塊中邏輯處理和數據進行分離。例如,廣場服和遊戲服中的插件,插件中的數據我們都可以在內存管理模塊中申請,這樣當我們需要熱更新插件的時候,不用額外處理插件中的數據(數據

原创 服務器——異常處理

服務器框架  一、前言 服務器在運行過程如果出現數組越界訪問、訪問空指針、迭代器訪問越界等等,可能會導致出現拋出異常,導致系統崩潰。怎樣捕獲異常並快速定位問題呢?   二、異常捕獲和問題定位 在window下可以用minidump將崩潰轉

原创 服務器框架——網絡消息協議

一、介紹 用於服務器和客戶端應用層之間的協議,通過定義的協議,可以將接收的數據轉發給相應的模塊,相應模塊可以將數據按照約定的結構進行解析。   二、協議體 2.1 消息碼定義 消息碼分爲:分類消息碼,主消息碼,子消息碼 2.2 消息碼作

原创 服務器——UID

一、介紹 在rpg這類遊戲中,有大量的實體存在,實體包括玩家、NPC、怪物、坐騎、寵物等等,每天實體有一個id,這個id是在實體創建的時候生成的,我們稱之爲uid,通過uid我們可以獲取到實體對象。(對於玩家實體它們還有一個id,是在玩家

原创 遊戲服服務器——對象池

一、介紹 在實際開放中如果某個對象,需要頻繁創建和銷燬,且創建代價較大,我們可以用對象池來進行管理,在需要對象的時候我們在對象池中找一個空閒的對象,如果對象池中沒有,先創建,並交給對象池進行管理,當對象使用完,將對象返回到對象池,用於下次

原创 鋪瓷磚

一、前言 問題來源LeetCode 1240,難度:困難 問題鏈接:https://leetcode-cn.com/problems/tiling-a-rectangle-with-the-fewest-squares   二、題目 你是

原创 尋路算法——A*算法詳解並附帶實現代碼

一、前言 前天看了一篇博客介紹A*算法,按照自己的理解記錄一下A*算法。   二、應用場景 一副地圖中有座標A和B,需要找到一條路徑(如果有的話)能從A到B,地圖中可能有河流或牆壁不能直接穿過,我們需要怎樣找到這條路徑呢? 在我們以往學習

原创 08.遊戲服服務器——DB服

一、DB服介紹 與數據庫交互和用戶數據緩存服務,使用sqlserver做爲存儲,用來保存用戶的所有相關數據。   二、服務器啓動流程 1、啓動準備 初始化網絡庫 監聽事件註冊   2、開始啓動 創建日誌、定時器 用戶代理服務啓動和監聽(監

原创 網關服代理

一、功能介紹 玩家在遊戲期間需要進行通信的服務器有:登錄服、廣場服、遊戲服(不考慮網站)。玩家和服務器之間通信是通過網關服轉發。連接的方式是網關服主動和登錄服、廣場服、遊戲服進行連接,登錄服、廣場服、遊戲服是用網關服代理模塊負責接收網關服