鍊錶變形之靜態鍊錶

2021-10-06 22:48:50 字數 1276 閱讀 4609

為什麼要引入靜態鍊錶

因為對於有些問題來說(比如說今天的問題)結點的位址是比較小的整數(五位以內)我們呢就沒有必要去建立動態鍊錶,反而用簡單方便得多的靜態鍊錶來取而代之。特點

盡量不要把結構體型別名和結構體變數名取相同的名字(這應該是常識)

來看題——

①傳送門

#include

#define maxn 100010

struct nodenode[maxn]

;//這題用下標作為位址

intmain()

int address1,address2,n;

scanf

("%d%d%d"

,&address1,

&address2,

&n);

int add,next;

char letter;

for(

int i=

0;i)int p;

for(p=address1;p!=-1

;p=node[p]

.next) node[p]

.flag=

true

;//標記第乙個鍊錶中的結點

for(p=address2;p!=-1

;p=node[p]

.next)

if(p==-1

)printf

("-1\n");

else

printf

("%05d"

,p);

return0;

}

② 傳送門

#include

#define maxn 100010

using

namespace std;

struct nodenode[maxn]

;bool

cmp(node a,node b)

intmain()

int n,begin,address;

scanf

("%d%d"

,&n,

&begin)

;for

(int i=

0;i)int count=

0,p=begin;

while

(p!=-1

)if(count==0)

printf

("0 -1");

else

}return0;

}

鍊錶學習 靜態鍊錶

struct linknode 鍊錶在指定位置插入與刪除元素不需要移動元素,只需要修改指標即可,而陣列刪除與加入元素則需要移動後面的元素,鍊錶相對於陣列來講,則多了指標域空間開銷,拿到鍊錶第乙個節點就相當於拿到整個鍊錶 鍊錶的分類 靜態鍊錶,動態鍊錶 單向鍊錶,雙向鍊錶,迴圈鍊錶,單向迴圈鍊錶,雙向...

線性表(一) 鍊錶之靜態鍊錶

五 靜態鍊錶的實現 定義靜態節點 template class staticlistnode template class staticlist 鍊錶是否為空 bool empty 獲取頭結點 listnode get head 插入節點 void insert const int index,co...

靜態鍊錶(陣列 鍊錶和靜態鍊錶的操作)

因為是線性表,不能只講鍊錶,所以今天提一下靜態鍊錶以及陣列 鍊錶 靜態鍊錶之間的對比。陣列基本結構沒得說,插入和刪除的操作也是有的 雖然看著不比較詭異 一般是動態分配乙個足夠長的,記錄有多少個元素後對這個個數進行加減,而不是每插入乙個就動態分配 其實這樣也行,要是不怕麻煩的話 另外在插入刪除操作之後...