原创 數據結構:排序算法之交換排序(冒泡排序、快速排序)

1、冒泡 void bubbleSort(int a[], int n){ for(int i =0 ; i< n-1; ++i) { for(int j = 0; j < n-i-1; ++j) { if(a[j] > a[

原创 ]數據結構:單鏈表之判斷兩個鏈表是否相交及求交點(帶環、不帶環)

1、判斷兩個鏈表是否相交,若相交,求交點。(假設鏈表不帶環) 兩個指針同時指向兩個鏈表,分別依次往後遍歷鏈表到最後一個節點,如指針的值相同(即節點地址相同),反之沒有交點。 int IsCross(Node* pHead1, Node*

原创 數據結構:排序算法之堆排序和選擇排序

1、堆排序 void HeapAdjust(int array[], int root, int size) { int parent = root; int child = root*2 + 1; while(child < si

原创 基於udp的網絡羣聊系統

一、系統簡介 這是一個基於udp協議的網絡羣聊系統,爲什麼選擇udp協議呢?這就需要了解TCP協議與udp協議。 1)TCP(Transmission Control Protocol,傳輸控制協議) 是面向連接的協議,也就是說,在收發

原创 Linux: shell命令 eval (有圖有代碼有真相!!!)

一、eval 命令定義 shell中的eval命令將會首先掃描命令行進行所有的替換,然後再執行命令。該命令使用於那些一次掃描無法實現其功能的變量。 該命令對變量進行兩次掃描。這些需要進行兩次掃描的變量有時候被稱爲複雜變量。不過這些變量本身

原创 C語言存儲空間佈局以及static解析

本文我將採用Linux環境測試C語言存儲空間佈局,以及採用VC6.0來測試static的常見用法。採用linux環境來測試c語言存儲空間佈局,是因爲Linux很容易利用shell命令中的size命令查看到進程存儲區各段的大小。採用VC6

原创 有趣的C語言面試題

1、gets() 和 fgets()函數 問題:找出下面代碼的問題 #include<stdio.h> int main(void) { char buff[10]; memset(buff,0,sizeof(bu

原创 二叉樹面試題:判斷樹是否爲完全二叉樹和求二叉樹的鏡像

1、判斷二叉樹是否爲完全二叉樹: 層序遍歷,從上到下,從左到右,遍歷二叉樹; 當遇到一個節點的左子樹爲空時,則該節點的右子樹爲空和後面遍歷的節點都爲葉子節點,否則不是完全二叉樹。 當該節點只有左子樹時,且該子樹爲葉子結點,否則不爲完全二叉

原创 面試題:找出公司員工最喜歡的k種水果

1、問題 本公司現在要給公司員工發波福利,在員工工作時間會提供大量的水果供員工補充營養。由於水果種類比較多,但是卻又不知道 哪種水果比較受歡迎,然後公司就讓每個員工報告了自己最愛喫的k種水果,並且告知已經將所有員工喜歡喫的水果存儲於

原创 字符串替換:用參數字符數組成員替換字符串中的佔位符(面試題)

1、問題描述: 請你實現一個簡單的字符串替換函數。原串中需要替換的佔位符爲"%s",請按照參數列表的順序一一替換佔位符。若參數列表的字符數大於佔位符個數。 則將剩下的參數字符添加到字符串的結尾。給定一個字符串A,同時給定它的長度n及

原创 LInux:shell 彩色進度條實現(有圖有代碼有真相!!!)

一、進度條原理(以前的博客詳細講述過):http://blog.csdn.net/sharp_up/article/details/55506555 二、顏色設置 // 字體顏範圍(前景顏色):30~39    30:黑 31:紅 3

原创 Linux:shell腳本命令: >/dev/null 2>&1 的理解

1、可以將/dev/null看作"黑洞". 它非常等價於一個只寫文件. 所有寫入它的內容都會永遠丟失. 而嘗試從它那兒讀取內容則什麼也讀不到. 然而, /dev/null對命令行和腳本都非常的有用.  禁止標準輸出.    1 cat

原创 數據結構:單鏈表操作之如何判斷鏈表是否帶環及相關操作

//判斷鏈表是否有環 int HasCircle(Node* pHead) {Node* low=pHead;Node* fast=pHead;     while(fast != NULL && fast->next != NULL)

原创 數據結構:將二叉搜索樹轉換成一個排序的雙向鏈表

1、將二叉搜索樹轉換成一個排序的雙向鏈表。提示:要求不能創建任何新的結點,只能調整樹中結點指針的指向,也就是left當prev,right當next。--中序線索化的變型。  Node* BSTreeToList() { i

原创 Linux: shell 中命令代換 $() 和 ``(有圖有代碼有真相!!!)

一、命令代換(命令替換) 由 ` ` 或  $() 括起來的也是一條命令,shell先執行該命令,再將結果立刻代換到當前命令行中。 簡單例子: DATE=`date` echo $DATE  DATE=$(date)   echo $