程式設計師面試攻略題2

2021-06-21 14:03:30 字數 823 閱讀 9111

題目:刪除單向鍊錶的頭元素的函式。請找出其中的程式漏洞並加以糾正

void removehead(node *head)

分析:在c語言裡,輸入引數都是以值傳遞的方式進入子函式的,換句話說,子函式所使用的

是輸入引數的乙個區域性副本,對這個區域性副本的修改不可能在該函式以外的地方被「看到」。

但在c語言裡,變數不能以引用傳遞方式進入子函式,當可以採用把乙個指向變數的指標作為

子函式輸入引數的辦法來繞開這個限制,就這道面試題來說,需要把乙個指向head

指標的指標傳遞給

removehead函式做輸入引數。

//正確:

void removehead(node **head)

}

另附一常考型別

題目:給定乙個單向鍊錶,請設計乙個既節省時間又節省空間的演算法來找出該鍊錶中的倒數第m個元素。實現這個演算法,

//並為可能出現的特例情況安排好處理措施。「倒數第m個元素」是這樣規定的:當m = 0時,鍊錶的最後乙個元素將被返回。

演算法:

element *findmtolastelement(element *head,int m)

mbehind=head;

while(current->next)

return mbehind;

}

程式設計師面試攻略

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

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

題目 有乙個單向鍊錶,它的元素全都是整數。head和tail分別是指向該鍊錶第乙個元素和最後乙個元素的全域性性指標。請實現呼叫介面如下所示的兩個c語言函式 int delete element elem int insertafter element elem,int data 分析 這道面試題重點...

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

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