使用說明
參考資料
結構體:可以將多種資料型別組合組合起來的結構,可以避免變數的反覆宣告,宣告方式如下,值得注意的是結構體也是種資料型別,可在另一結構體中定義。
struct 結構體名稱
舉例:struct timetime 1
,time 2;//宣告的同時定義
//結構體外定義用struct time time1;
//賦值時struct student alan=;
//和陣列初始化一樣
給乙個char字元陣列賦值用strcpy(alan.name,「alan」);
用typedef來為型別起個別名,如「typedef long index;」。給long這樣的型別起別名主要目的不是簡化程式的書寫,它有兩個用處:一是表明該型別的特殊作用,二是將來有可能要改變這種型別(比如提高精度),如果直接宣告為long型則失去了程式的可惟護性——每乙個變數的宣告都要改動;而宣告為index則使維護程式變得十分簡單——只要改一下typedef語句即可。比如typ
edef
intd
atet
yp
etypedef \, \,int\,\, datetype
typede
fint
date
type
然後下面有n個函式,都是類似這樣的:
datetype typeadd
(datetype a, datetype b)
datetype typediff
(datetype a, datetype b)
datetype func1
(datetype a, datetype b)
如果你沒用dat
etyp
edatetype
datety
pe而是直接用的int
intin
t,當你希望這些函式計算浮點數的時候,你就必須把所有**裡的所有int
intin
t都換成flo
at
float
floa
t或者dou
bl
edouble
double
,而且一旦有地方換漏了就很容易出錯,丟失精度什麼的
c語言裡面對檔案的操作是通過檔案指標,以及一些相關的函式,那麼c++中是如何對檔案進行操作的呢?沒錯,就是通過fstream 這個檔案流來實現的。當我們使用#include 時,我們就可以使用其中的 ifstream,ofstream以及fstream 類(ofstream是從記憶體到硬碟,ifstream是從硬碟到記憶體),也就可以用這三個類來定義相應的物件了,這三個類分別代表乙個輸入檔案,乙個輸出檔案,以及乙個輸入輸出檔案。ifstream類支援》操作符,ofstream類支援《操作符,fstream類同時支援》和《操作符。
ofstream out
("..."
, ios:
:out)
;ifstream in
("..."
, ios::in
);fstream foi
("..."
, ios::in
|ios:
:out)
;
檔案寫操作
下面展示一些內聯**片
。
// writing on a text file
#include
int main()
return0;
}
檔案讀操作// reading a text file
#include
#include
#include
int main()
while(!
in.eof())
return0;
}
狀態標誌符is_open
():檔案是否正常開啟
bad(
):讀寫過程中是否出錯
(操作物件沒有開啟,寫入的裝置沒有空間)
fail()
:讀寫過程中是否出錯
(操作物件沒有開啟,寫入的裝置沒有空間,格式錯誤--比如讀入型別不匹配)
eof(
):讀檔案到達檔案末尾,返回true
good
():以上任何乙個返回true,這個就返回false
#include
#include
using namespace std;
#define ok
1#define error
0#define overflow-2
typedef int status;
typedef char selemtype;
typedef struct stacknodestacknode ,
*linkstack;
//鏈棧的初始化
status initstack
(linkstack &s)
//鏈棧的入棧
status push
(linkstack &
s,selemtype e)
//鏈棧的出棧
status pop
(linkstack &
s,selemtype &e)
//取鏈棧的棧頂元素
selemtype gettop
(linkstack s)
int main()
else
cout<<
"初始化棧失效\n\n"
;break
;case2:
if(flag)
} cout<" ";
}else
cout<<
"棧未建立,請重新選擇\n\n"
; file.
close()
;//開啟的檔案關閉
}break
;case3:
if(flag !=-1
&&flag!=0)
cout<<
"棧頂元素為,\n"
<<
gettop
(s)
;case4:
if(flag)
else
cout<<
"棧未建立,請重新選擇\n\n"
;break;}
}return0;
}
建立乙個.tx
t.txt
.txt
檔案,輸入若干字元,將其重新命名為sqs
tack
.txt
sqstack.txt
sqstac
k.tx
t,將sqs
tack
.txt
sqstack.txt
sqstac
k.tx
t檔案和上方**執行的.cp
p.cpp
.cpp
檔案放乙個資料夾李即可執行。
26鏈棧實現**講解(資料結構)
資料結構中 為什麼要用typedef int datatype ,而不直接用int
零基礎學資料結構 樣張試讀2
下面通過乙個例項來說明鏈式佇列的具體使用。例5 3 程式設計判斷乙個字串行是否是回文。回文是指乙個字串行以中間字元為基準兩邊字元完全相同,即順著看和倒著看是相同的字串行。如字串行 xyzazyx 就是回文,而字串行 xyzbzxy 就不是回文。分析 考察棧的 先進後出 和佇列的 先進先出 的特點,可...
簡單選擇排序 零基礎學資料結構
簡單選擇排序選擇排序的基本思想是 從待排序的元素序列中選擇關鍵字最小或最大的元素,將其放在已排序元素序列的最前面或最後面,其餘的元素構成新的待排序元素序列,並從待排序元素序列中選擇關鍵字最小的元素,將其放在已排序元素序列的最前面或最後面。依次類推,直到待排序元素序列中沒有待排序的元素,選擇排序結束。...
簡單選擇排序 零基礎學資料結構
簡單選擇排序選擇排序的基本思想是 從待排序的元素序列中選擇關鍵字最小或最大的元素,將其放在已排序元素序列的最前面或最後面,其餘的元素構成新的待排序元素序列,並從待排序元素序列中選擇關鍵字最小的元素,將其放在已排序元素序列的最前面或最後面。依次類推,直到待排序元素序列中沒有待排序的元素,選擇排序結束。...