原创 Linux:系統啓動級別選擇以及切換

  linux經過長時間的發展,已經從單純枯燥的dos黑白界面變成了擁有多彩桌面的操作系統,以至於它看起來沒有以前那麼單調。然而有時候因爲一些特殊需要,而需要變更啓動級別的時候,如何進行切換呢?  當然,這個功能的實現和系統文件是密切相關

原创 經典算法:堆排序

 堆排序 堆排序是利用堆的性質來進行排序的一個算法。 一、堆   堆(英語:heap)是計算機科學中一類特殊的數據結構的統稱。堆通常是一個可以被看做一棵樹的數組對象。堆總是滿足下列性質: 堆中某個節點的值總是不大於或不小於其父節點的

原创 數據結構1:順序表

在計算機中主要有兩種基本的數據結構來存放線性表:順序表以及鏈表。其中鏈表又可以分爲單鏈表,雙向鏈表,單循環鏈表,雙向循環鏈表,靜態鏈表等。這些都是後話,我們首先對順序表進行分析。作爲數據結構最入門的存儲結構,它是很有意義的。   順序表

原创 微信小程序:各種Tab欄

時隔這麼久,終於又開始寫博客了:P。本文記錄的是本人在做微信小程序的時候,自己實現的幾種tab欄。排序從簡單到複雜。我實現了以下幾種: 最普通的Tab。點擊變色並切換,無過渡。 帶滑動效果的Tab,配合swiper實現的。 滑動

原创 單鏈表

鏈表作爲非常常見的一種數據結構,廣泛應用於各個場合中。相比於順序表,它不需要一段連續的內存,而是通過next指向自己的下一個節點。鏈表的定義如下:typedef struct Node{    int data;    struct No

原创 Lua中的泛型for循環詳解

由於公司最近需要使用lua編寫腳本,於是開始研究這個腳本語言。其中,泛型for循環的示例寫法如下: a={"one","two","three"} for i,v in ipairs(a) do print(i,v) end 在觀看lu

原创 linux編譯時報錯:undefined reference to 'memcpy@GLIBC_2.14'

今天在公司熟悉模塊時,對已經寫好的模塊進行make。結果出現以下錯誤: /usr/local/glibc-2.14/lib/libnsl.so.1:undefined reference to 'memcpy@GLIBC_2.14' /

原创 C++智能指針:auto_ptr詳解

指針,相信大家並不陌生。無論是我們在進行查看內存還是在修改字符串,我們都會用到指針。 最常見的情況則是我們使用malloc或者new申請到了一塊內存,然後用一個指針來保存起來。我們都知道有內存的申請那就必須要對它進行釋放的處理,否則會造成

原创 二叉樹遍歷:前序,中序,後序,層序的遞歸以及非遞歸實現

樹,是一種在實際編程中經常遇到的數據結構,它的邏輯很簡單:除根節點之外每個節點都有且只有一個父節點,除葉子節點之外所有節點都有一個或多個子節點。我們說的二叉樹,就是指子節點最多2個的樹。 二叉樹中,最重要的操作就是遍歷。二叉樹的遍歷分爲:

原创 數據結構:AVL樹的平衡調整——LL,LR,RL,RR

AVL樹的全稱是平衡搜索二叉樹,本質上也是一個二叉搜索樹(BST),滿足BST樹的所有性質。 但是我們在使用二叉搜索樹的時候,我們知道通常情況在BST中搜索一個節點的時間複雜度是O(lgn)。 最壞的情況爲O(n),這種情況就是出現連續的

原创 C++實現用兩個棧模擬一個隊列

問題描述 用兩個棧來實現一個隊列,隊列的聲明如下,實現其中的兩個函數,分別完成在隊列尾部插入節點和在隊列頭部刪除節點的操作。 聲明: template <typename T> class CQueue { public:

原创 TCP/IP三次握手、四次揮手

我們在使用互聯網和別的網站進行通信的時候,都要依賴TCP/IP協議。甚至有時候網不太好,瀏覽器會顯示當前狀態:正在與某某網站握手...當網絡狀態很好的時候,就會一閃而過。本文將詳細總結筆者在學習三次握手四次揮手時的各個狀態以及過程。 首先

原创 排序算法5:堆排序

簡介 堆排序是利用堆這種數據結構進行的排序。堆通常使用一維數組來實現,是一種近似完全二叉樹的結構。堆排序分爲大根堆和小根堆。堆排序滿足這樣的一個特性:大根堆父節點的值總是大於子節點,小根堆的父節點值總是小於子節點。 思想 我們在拿

原创 C語言中的邏輯運算符:按位與,按位或,按位異或,取反,左右移位

c語言中存在6個位操作運算符,且它們只能用於整形操作數。   &         按位與   |          按位或   ^         按位異或   <<      按位左移   >>      按位右移   ~       

原创 排序算法4:歸併排序

簡介 歸併排序是馮諾依曼在1945年提出的一種有效的排序算法。它的時間複雜度是O(nlogn),空間複雜度O(n),它是一個穩定的排序。 思想 正如它的名字,歸併排序是建立在歸併操作上的。所謂歸併就是將兩個已排序序列合併成爲一個序