Time of Update: 2017-02-27
3、刪除假如我們已經知道了要刪除的結點p的位置,那麼要刪除p結點時只要令p結點的前驅結點的鏈域由儲存p結點的地址該為儲存p的後繼結點的地址,並回收p結點即可。以下便是應用刪除演算法的執行個體:#include <stdio.h>#include <malloc.h>#include <string.h>#define N 10typedef struct node{char name[20];struct node *link;}stud;stud *
Time of Update: 2017-02-27
二、單鏈表的基本運算建立了一個單鏈表之後,如果要進行一些如插入、刪除等操作該怎麼辦?所以還須掌握一些單鏈表的基本演算法,來實現這些操作。單鏈表的基本運算包括:尋找、插入和刪除。下面我們就一一介紹這三種基本運算的演算法,並結合我們建立單鏈表的例子寫出相應的程式。1、尋找對單鏈表進行尋找的思路為:對單鏈表的結點依次掃描,檢測其資料域是否是我們所要查好的值,若是返回該結點的指標,否則返回NULL。因為在單鏈表的鏈域中包含了後繼結點的儲存地址,所以當我們實現的時候,只要知道該單鏈表的頭指標,即可依次對每
Time of Update: 2017-02-27
準備:動態記憶體分配一、為什麼用動態記憶體分配但我們未學習鏈表的時候,如果要儲存數量比較多的同類型或同結構的資料的時候,總是使用一個數組。比如說我們要儲存一個班級學生的某科分數,總是定義一個float型(存在0.5分)數組:float
Time of Update: 2017-02-27
曾經對float num=3.14f; 這樣的賦值非常疑惑,其實現在也不明白.既然說明了是float類型,又何必在3.14後面掛個f呢?書上說:int num=100; 一個整數常量將預設為int類型(除非常數有尾碼或超出了int的範圍)double num=3.14; 一個浮點數常量將預設為double類型並要求:long num=100L;long long num=100LL;unsigned long=100UL;unsigned long long num=100ULL;float n
Time of Update: 2017-02-27
3.if...elseif語句實際應用中常常面對更多的選擇,這時,將if...else擴充一下,就得到if...elseif結構,其一般形式為:if<運算式1> 語句1else if<運算式2> 語句2 else if<運算式3> 語句3else
Time of Update: 2017-02-27
在程式的三種基本結構中,第二種即為選擇結構,其基本特點是:程式的流程由多路分支組成,在程式的一次執行過程中,根據不同的情況,只有一條支路被選中執行,而其他分支上的語句被直接跳過。C語言中,提供if語句和switch語句選擇結構,if語句用於兩者選一的情況,而switch用於多分支選一的情形。3.3.1
Time of Update: 2017-02-27
在這裡列舉了一個應用單鏈表基本演算法的綜合程式,雙向鏈表和迴圈鏈表的綜合程式大家可以自己去試一試。#include <stdio.h>#include <malloc.h>#include <string.h>#define N 10 typedef struct node{char name[20];struct node *link;}stud;stud * creat(int n){stud *p,*h,*s;int i;if((h=(stud
Time of Update: 2017-02-27
2、插入對於雙向迴圈鏈表,我們現在可以隨意地在某已知結點p前或者p後插入一個新的結點。假若s,p,q是連續三個結點的指標,若我們要在p前插入一個新結點r,則只需把s的右鏈域指標指向r,r的左鏈域指標指向s,r的右鏈域指標指向p,p的左鏈域指標指向r即可。在p,q之間插入原理也一樣。下面就是一個應用雙向迴圈鏈表插入演算法的例子:#include <stdio.h>#include <malloc.h>#include <string.h>#define N 10
Time of Update: 2017-02-27
一. namespace-命名空間在C#中命名空間有很大的作用,它指明了你所用到的類來自哪個命名空間中,例如Mail類在命名空間using System.Net.Mail和using System.Web.Mail都存在,如果你在程式當中引用了這兩個空間,但是在建立Mail類的對象時候沒有指明使用的是哪個空間中的類那麼就會出現錯誤:using System.Net.Mail;using System.Web.Mail;public pa
Time of Update: 2017-02-27
閑言碎語才疏學淺,只把計算映像相似性的一個基本演算法的基本實現方式給羅列了出來,以至於在最後自己測評的時候也大發感慨,這個演算法有點不靠譜。不管怎麼樣,這個演算法有時候還是有用的,所以還是列出來跟大傢伙一起分享分享~~PS:影像處理這一塊博大精深,個人偶爾發現了點東西拿來分享。說的不好的地方,寫得太糟的地方,諸位準備扔磚頭還望淡定,淡定~~基本知識介紹顏色長條圖顏色長條圖是在許多映像檢索系統中被廣泛採用的顏色特徵,它所描述的是不同色彩在整幅映像中所佔的比例,而並不關心每種色彩所處的空間位置,即無
Time of Update: 2017-02-27
項目中需要實現以下功能:預覽列印控制項中,可以用滑鼠拖動頁面,以查看超出顯示範圍之外的部分內容。該功能本來可以通過拉動水平和垂直捲軸來實現,但實際使用中,使用者更趨向於直接用滑鼠拖動頁面來實現,很多看圖類軟體都有這種類似的功能。而.net的預覽列印控制項卻很遺憾的沒有提供這一功能,只來自己想辦法來實現啦。呵呵,不過辦法總是有的。我的辦法就是用代碼來控制預覽列印控制項中的水平來垂直捲軸的位置,間接實現和用滑鼠直接拖動捲軸一樣的效果。在實現這一功能的過程中,最大的困難是預覽列印控制項並沒有讓程式員直
Time of Update: 2017-02-27
接著說說友員friend和操作符重載operator,為了把這兩個搞清楚,費了大半天勁兒搞了一個堆棧,被一堆積指標問題搞得頭都大了! 不過,最終還是OK了!這次做這麼一件事,搞體育活動。每個團隊Team 有5個隊員Comperitor ,可以對隊員做入棧、出棧操作,每個隊員有編號、名字。對輸入隊員資訊、輸出隊員資訊做操作符重載,使得輸入的時候能夠給出相應提示。構建一個隊員類ComperitorC++代碼/** * 隊員 */class Comperitor {private: char
Time of Update: 2017-02-27
一套原來在Access上開發的案頭系統,網頁調閱使用ASP編程,資料維護系統使用C++Builder編程。由於Access是一個案頭的共用型資料庫,所以在通用性和網路開發方面都存在一些問題。因此,需要將該系統移植到伺服器型的資料庫上。使系統既可以通過案頭軟體維護資料,又可以有大量使用者通過網頁調看資料(結果)。系統初始軟體為:Windows98第二版、Access97、C++Builder4.0、C++Builder5.0、MDAC(Microsoft Data Access
Time of Update: 2017-02-27
***純虛擬函數***在設計抽象基類時,需要注意以下幾點:(1)不要將destructor 聲明為pure virtual function;如果將destructor聲明為pure virtual function,則設計者一 定得定義它。因為每一個derived class destructor會被編譯器加以擴充,以靜態調用得方式調用其 “每一個virtual base class”以及“上一層base class”的 destructor.(
Time of Update: 2017-02-27
在C++中,要定義一個常量,有兩種主要的做法1.符號常量(#define)2.常值變數(const)符號常量的定義方式,其實與C++本身沒有關係,它是一個編譯器指令,或者稱為預先處理指令(有關的預先處理指令還有#include,#ifdefine等等)。它的用法如下#define PI 3.1415926這樣的文法就定義了一個叫做PI的符號常量,它的值指定為3.1415926.【注意】因為它其實不是C++文法,所以它不需要(也不能)用分號結束。我們怎麼使用呢#include
Time of Update: 2017-02-27
三、常用控制項的使用與編程靜態文本是使用者無法直接改變(不可編輯)的文本,程式可以在運行時刻來改變它,通常起標註和提示作用,它位於控制項板的“Standard”頁,其主要屬性有:Align:指該控制項在視窗中的位置或對齊(AlBottom:位於底部;AlClient:充滿客戶區;AlLeft:位於左方;AlNone:使用者自訂;AlRight:位於右方;AlTop:位於頂部)。Alignment:顯示文字在本控制項中的位置(taCenter:置中;taLeftJustif
Time of Update: 2017-02-27
C#2.0介紹了一個新特性--匿名方法,允許開發人員線上(inline)聲明自己的函 數代碼而無須使用委託函數(delegate function)。C#3.0中提供了一個新特性- -Lambda運算式,它提供了完成相同目標的更加簡潔的格式。讓我們在討論 Lambda運算式以前仔細研究一下匿名方法。匿名方法假設你需要建立一個按鈕,當點擊它的時候更新ListBox裡的內容。在C#1.0 和1.1裡,你要這樣做:public MyForm(){ listBox = new ListBox(...);
Time of Update: 2017-02-27
前言小弟從大學裡開始接觸編程也有6年了,工作4年也是幹編程的活,見過不少程式,自己也編過不少,在學校編程自己覺得是搞藝術品,其實玩一些遊戲,比如文明法老王星際等從某些角度看也是搞藝術品,看著自己苦心經營的建築物和人員由少變多,由簡單變複雜,心中有些成就感。編程也一樣,程式從幾十行寫到上萬行,功能由HellowWord到相當複雜而強大,心中也有不少成就感。畢業後工作,才漸漸感悟軟體開發本質上是做一個工具,這個工具給別人或者自己用。有了工具,很多問題就迎刃可解了。如此開來偶們程式員和石匠鐵匠木匠是同
Time of Update: 2017-02-27
互動協議的開銷與麻煩就是對資料媒體的如何使用。在互動過程中可能要不 同的使用媒體,例如在交流中要不同的使用電話號碼,傳真,地址,和電子郵件 地址。讓我們再回頭來看看上次的訂購目錄,當你用電話訂購時,你要回答售貨 員的一系列問題:“你可以把第一項填一下嗎? ”“這一項的號碼是123-456”"您想訂購 多少呢?""三件"這樣的問題一直要問到銷售人
Time of Update: 2017-02-27
判斷隨機字串之間的是否相等是程式設計中常用的技巧,再C++時代,我們可以通過把字串中每四個位元組轉換為一個int對象,通過int對象一次比較四個字元,從而實現相對高效的字串比較工作。那麼,這個思路在C#中能否是實現呢?答案是肯定的。在C#中使用上述思想,必須要解決兩個問題,其一是在C#中使用指標,並且指標指向的託管變數位置不能被GC重新分配。其二,託管字串在記憶體中與int或long之間的對應關係。很多文章中已經詳細描述了在C#中使用指標的方法,本文不再詳細敘述,開啟unsafe開關的方式為,按