有乙個陣列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的結點放在另乙個鍊錶中,然後合併兩個鍊...