程式設計師面試攻略試題1

2021-06-21 02:58:23 字數 769 閱讀 2256

題目:有乙個單向鍊錶,它的元素全都是整數。head和tail分別是指向該鍊錶第乙個元素和最後乙個元素的全域性性指標。

請實現呼叫介面如下所示的兩個c語言函式

int delete(element *elem)

int insertafter(element *elem,int data)

分析:這道面試題重點考察了對特殊情況的分析和處理能力。在實際程式設計工作中,未做適當處理的特殊情況就是程式**中的bug(程式漏洞),

而且是很難查詢、重現和修正的bug。一般在編寫**的同時就已經考慮到各種特殊情況的程式設計師肯定要比通過除錯去查詢bug的程式設計師

高效。經驗豐富的面試考官肯定知道這一道理,本題看似簡單,當不同尋常的是它要求你必須正確地調整好head和tail指標。也就是說

當刪除的是首尾兩端的元素時,需要對這兩個指標做出調整。

演算法

// 刪除某元素

int delete(element *elem)

while(curpos)

curpos=curpos->next;

} return 0;

}int insertafter(element *elem,int data)

while(curpos)

curpos=curpos->next;

} free(newelem);

return 0;

}

程式設計師面試攻略

1.求職過程 2.程式設計面試題的解答思路 對面試題不清楚的地方一定要問清楚,在編寫 的過程中應隨時向考官解釋你正在做的事情,寫完程式後應該找例子驗證自己寫出來的 對解決方案的複雜性進行分析 3.鍊錶 p21頭指標的修改,用c語言 無法正確改變父函式裡的指標 int badinsert elemen...

程式設計師面試攻略題2

題目 刪除單向鍊錶的頭元素的函式。請找出其中的程式漏洞並加以糾正 void removehead node head 分析 在c語言裡,輸入引數都是以值傳遞的方式進入子函式的,換句話說,子函式所使用的 是輸入引數的乙個區域性副本,對這個區域性副本的修改不可能在該函式以外的地方被 看到 但在c語言裡,...

《程式設計師面試攻略》題目總結

1.鍊錶中的倒數第m個元素 給定乙個單向鍊錶,請設計乙個既節省時間又節省空間的演算法來找出該鍊錶中的倒數第m個元素。實現這個演算法。倒數第m個元素 是這樣規定的 當m 0時,鍊錶的最後乙個元素 尾元素 將被返回。前進m步後啟動乙個 後指標 2.空鍊錶和迴圈鍊錶 給定乙個鍊錶,它可能是乙個以 null...