uva 11988 鍊錶 OR 塊狀鍊錶

2022-07-12 07:51:07 字數 1529 閱讀 8188

鍊錶寫法:新增加乙個頭結點來使插入操作統一。

1 #include 2 #include 3 #include 4

using

namespace

std;56

const

int n = 100001;7

char

text[n];

8char

str[n];

9int

next[n];

10int

cur, last, bl;

1112

intmain ()

1326

else

if ( text[i] == ']'

)2730else

3140 cur =ncur;41}

42}43for ( int i = next[0]; i != -1; i =next[i] )

4447 putchar('\n'

);48}49

return0;

50 }

分析了一下感覺塊鏈也可以過,就套模板試了一下,果然沒有讓我失望,看來我寫的塊鏈還是不錯的,哈哈。

塊鏈寫法:

1 #include 2 #include 3 #include 4

using

namespace

std;56

const

int m = 100001;7

const

int n = 500;8

char

text[m];

9char

b[n][n];

10int

sz[n];

11int

next[n];

12int

ps, bl;

1314

void

init()

1521

22void spilt( int

cur )

2331 sz[cur] = sz[cur] / 2;32

}3334void insert( int pos, char

val )

3542

if ( p < pos + 1)43

46else

4754 b[cur][pos] =val;

55 sz[cur]++;56}

57if ( sz[cur] >ps ) spilt(cur);58}

5960

intmain ()

6172

else

if ( text[i] == ']'

)7376else

7781}82

for ( int i = 0; i != -1; i =next[i] )

8388

}89 putchar('\n'

);90}91

return0;

92 }

UVA 11988 鍊錶

之前遇到字典樹什麼的要不就用指標鍊錶,要不直接上list。陣列鍊錶主要思想和指標差不多。指標是用 next記錄下乙個的位址然後形成鏈。陣列本身開闢空間時便是乙個位址所以也可以達到這點。仔細分析一下陣列a的下標再不斷增大,但是記錄的資料卻在更新。所以可以大致寫出 int next 11 int now...

UVa11988 鍊錶簡單應用

這題嘗試了兩種方法,一是書上說的用陣列來實現鍊錶相關操作,一種是利用指標形式的鍊錶實現 1.使用字元陣列c儲存一行中每個字元的值 2.使用陣列next儲存下乙個字元的位置,可以看成c i 和next i 共同構成鍊錶中的乙個結點 所以next 0 c 0 對應的是頭節點 3.設當前字元的上個字元所在...

UVA 11988 悲劇文字 靜態鍊錶

你有乙個破損的鍵盤。鍵盤上的所有鍵都可以正常工作,但有時home鍵或者end鍵會自 動按下。你並不知道鍵盤存在這一問題,而是專心地打稿子,甚至連顯示器都沒開啟。當你 開啟顯示器之後,展現在你面前的是一段悲劇的文字。你的任務是在開啟顯示器之前計算出 這段悲劇文字。輸入包含多組資料。每組資料佔一行,包含...