程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 數據結構練手01 線性表實現

數據結構練手01 線性表實現

編輯:C++入門知識

C++的知識點很零碎繁瑣,只是總結沒啥作用,更多的應該是在實踐中找問題。今天我去編寫《數據結構,算法與應用 C++語言描述》中線性表的實現代碼,感覺寫代碼能力生疏了好多。

編寫過程中,我發現了幾個問題,很值得關注:

1、我的代碼是通過類模板編寫的。很多人寫代碼的時候,都把聲明和實現放在一個頭文件裡,primer中說要借用export才能實現分離編譯,對於這點,我也不是很了解,但是我取巧了下,通過兩個 #ifndef....#endif 達到了聲明放在.h, 實現放在了.cpp中。

2、模板類中關於<<的重載,需要在聲明中加入 <> ,要不然編譯不通過。

3、cout 的刷新問題。 如 fun(int& x), 若我們這麼用  cout << fun(y) << y ;  屏幕上顯示的不是y更新後的值,而是調用y前的值。而將它分成兩個cout來輸出,或者刷新後輸出,那麼將是正確的。

好的,貼代碼:  實現環境 vs2010

 MY_LINEARLIST_H<ostream>
 < T>
 cap = ~ find( pos, T& hold)  search( T& x) <T>& drop( pos, T&<T>& insert( pos,  T& printt(ostream& os)&  << (ostream& os,  LinearList<T>&*
 MY_LINEARLIST_CPP<cstdlib><ostream>< T><T>::LinearList(= == < T><T>::~LinearList( (element !=< T>
 LinearList<T> size == < T>
 LinearList<T>< T>
 LinearList<T>::find( pos,T& hold)  (pos > size || pos < )  = element[pos- < T>
 LinearList<T>::search( T& x)  ( i=; i<size; ++ (element[i] = i+ < T><T>& LinearList<T>::drop( pos, T& (pos > size || pos < = element[pos-( i=pos; i<size; ++-] =-- *< T><T>& LinearList<T>::insert( pos,  T&(size ==* newElement =  T[capacity*<<=  ( i=; i<pos; ++-] = element[i-=( i=pos; i<size; +++] =++=( i=size; i>=pos; --= element[i--] =++ *< T>
 LinearList<T>::printt(ostream& )  ( i=; i<size; ++ << element[i] <<  < T>& << (ostream& ,  LinearList<T>&);  
       LinearList<> L( 
      y=     L.insert (,         cout << L <<     L.insert (,         cout << L <<     L.insert (,         cout << L <<     cout <<  << y <<     cout <<  << L.find(,y) <<  << y <<     cout <<  << y << 
 }

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved