題目:
建乙個鍊錶(棧鍊錶),節點的值依次由鍵盤輸入。要求任意輸入乙個數,把它從鍊錶中刪除,輸出刪除後的鍊錶。
樣例輸入:
1 2 3 4 5 6 -1 3
樣例輸出:
1 2 4 5 6
解題思路:先把讀入的資料變為乙個線性鍊錶,然後在這裡面尋找要刪除的數,進行刪除,最後輸出刪除後的線性鍊錶即可。
程式:type
point=^node;
node=record
data:integer;
next:point;
end;
var head:point;
x:integer;
procedure creat(var head:point);
vari:integer;
p,q:point;
begin
head:=nil;
for i:=1 to 50 do
if i=1
then begin
new(q);
q^.data:=i;
p:=q;
head:=p;
end else begin
new(q);
q^.data:=i;
p^.next:=q;
p:=q;
end;
p^.next:=nil;
end;
procedure delete(var head:point;x:integer);
vari:integer;
p,q:point;
begin
p:=head;
while (p^.data<>x) and (p^.next<>nil) do
begin
q:=p;
p:=p^.next;
end;
if p=head
then begin
head:=head^.next;
dispose(p);
end else if p^.next=nil
then begin
q^.next:=nil;
dispose(p);
end else begin
q^.next:=p^.next;
dispose(p);
end;
end;
procedure print(head:point);
varp:point;
begin
p:=head;
while p<>nil do
begin
write(p^.data,' ');
p:=p^.next;
end;
end;
begin
readln(x);
creat(head);
delete(head,x);
print(head);
end.
約瑟夫問題(指標變數及線性鍊錶)
description 設有 個人依次圍成一圈,從第 個人開始報數,數到第 個人出列,然後從出列的下乙個人開始報數,數到第 個人又出列,如此反覆到所有的人全部出列為止。設 個人的編號分別為1,2,n,輸出最後乙個的編號。input n,m 1 n,m 100000 output 最後乙個的編號 sa...
指標與鍊錶
指標是乙個儲存計算機記憶體位址的變數。從指標指向的記憶體讀取資料稱作指標的取值。指標可以指向某些具體型別的變數位址,例如int long和double。指標也可以是void型別 null指標和未初始化指標。根據出現的位置不同,操作符 既可以用來宣告乙個指標變數,也可以用作指標的取值。當用在宣告乙個變...
指標與鍊錶
真正有用的動態變數很少會是int,double這樣的簡單型別.相反都是一些複雜型別,比如陣列,結構體,或類.結構體或類型別的動態變數通常由乙個或多個成員變數,這些變數是指標,可將動態變數連線到其它動態變數.一.節點 在c 中,節點作為結構或類實現.struct listnode typedef li...