刪數問題(指標變數與線性鍊錶)

2021-07-11 01:57:59 字數 1496 閱讀 9222

題目:

建乙個鍊錶(棧鍊錶),節點的值依次由鍵盤輸入。要求任意輸入乙個數,把它從鍊錶中刪除,輸出刪除後的鍊錶。

樣例輸入:

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...