**:
單向鍊錶的反轉是乙個經常被問到的乙個面試題,也是乙個非常基礎的問題。比如乙個鍊錶是這樣的: 1->2->3->4->5 通過反轉後成為5->4->3->2->1.
最容易想到的方法遍歷一遍鍊錶,利用乙個輔助指標,儲存遍歷過程中當前指標指向的下乙個元素,然後將當前節點元素的指標反轉後,利用已經儲存的指標往後面繼續遍歷。源**如下:
struct linka ;
void reverse(linka*& head)
head->next = null;
head = pre;
}還有一種利用遞迴的方法。這種方法的基本思想是在反轉當前節點之前先呼叫遞迴函式反轉後續節點。源**如下。不過這個方法有乙個缺點,就是在反轉後的最後乙個結點會形成乙個環,所以必須將函式的返回的節點的next域置為null.因為要改變head指標,所以我用了引用。演算法的源**如下:
linka* reverse(linka* p,linka*& head)
else}
②已知string類定義如下:
class string
;嘗試寫出類的成員函式實現。
答案:string::string(const char *str)
else
string::string(const string &another)
string& string::operator =(const string &rhs)
string::~string()
C C 程式設計師面試題(一)
1.區域性變數和全域性變數能否重名?能,區域性變數會遮蔽全域性變數。2.全域性變數能否定義在可被多個.c檔案包含的標頭檔案中?能,因為在不同的c檔案中以static形式來宣告同名全域性變數,但在這些同名的全域性變數中只能有乙個c檔案對其賦初值。3.可以通過引用標頭檔案或使用extern關鍵字來引用乙...
程式設計師必知
1.乙個程式設計師用在寫程式上的時間大概佔他的工作時間的10 20 大部分的程式設計師每天大約能寫出10 12行的能進入最終的產品的 不管他的技術水平有多高。好的程式設計師花去90 的時間在思考 研究和實驗,來找出最優方案。差的程式設計師花去90 的時間在除錯問題程式 盲目的修改程式,期望某種寫法能...
c c 程式設計師筆試面試題型
1.c中static有什麼作用?1 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性,故使用static在不同的檔案中定義同名函式和同名變數,而不必擔心命名衝突。2 static的第二個作用是保持變數內容的持久。儲存在靜態資料區的變數會在程式剛開始執行時就...