牛客網 華為筆試題 迴圈鍊錶

2021-10-18 05:54:18 字數 750 閱讀 1739

有乙個陣列a[n]順序存放0~n-1,要求每隔兩個數刪掉乙個數,到末尾時迴圈至開頭繼續進行,求最後乙個被刪掉的數的原始下標位置。以8個數(n=7)為例:{0,1,2,3,4,5,6,7},0->1->2(刪除)->3->4->5(刪除)->6->7->0(刪除),如此迴圈直到最後乙個數被刪除。

迴圈鍊錶

尾部節點的next指標指向首部節點的鍊錶結構

建立乙個迴圈鍊錶

#include

struct node

;int

main()

// 定義乙個迴圈鍊錶

// 尾節點的next指向頭節點

int i =0;

// 建立頭節點

struct node * head =

malloc

(sizeof

(struct node *))

;struct node * temp = head;

while

(i < n)

else

i++;}

// 當head->next == head時,此時,head->next即是要找的值

while

(head->next != head)

printf

("%d\n"

, head->next->number);}

}

牛客網筆試題2

本題考查對投影操作的掌握。投影操作是從表中選出某些列而丟棄另一些列。如果只對乙個關係中的某些屬 興趣,那麼就需要使用投影操作在這些屬性上投影該關係。元組就是行,row,投影操作就是刪除列,column,刪除列以後,表中行資料可能會有重複資料,所以,是小於等於。投影結果如果有相同元祖,則會預設使用di...

牛客網 反轉鍊錶

題目 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。這個題目中,head頭結點就存放了元素。思路 public class listnode public class solution listnode pre null listnode next while head null return pr...

牛客網 鍊錶分割

編寫 以給定值x為基準將鍊錶分割成兩部分,所有小於x的結點排在大於或等於x的結點之前。給定乙個鍊錶的頭指標 listnode phead,請返回重新排列後的鍊錶的頭指標。注意 分割以後保持原來的資料順序不變。設定兩個鍊錶,將小於x的結點放在乙個鍊錶中,大於等於x的結點放在另乙個鍊錶中,然後合併兩個鍊...