UVA 11988 悲劇文字 靜態鍊錶

2021-10-22 07:22:54 字數 569 閱讀 4236

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

輸入包含多組資料。每組資料佔一行,包含不超過100000個字母、下劃線、字元「[」或

者「]」。其中字元「[」表示home鍵,「]」表示end鍵。輸入結束標誌為檔案結束符(eof)。輸 入檔案不超過5mb。對於每組資料,輸出一行,即螢幕上的悲劇文字。

**如下:

#include

#include

const

int n =

100010

;char s[n]

;int next[n]

;int

main()

}for

(int i = next[0]

; i; i = next[i]

)printf

("\n");

}return0;

}

UVA11988破損的鍵盤(悲劇文字)

1.虛擬結點,從s 1開始輸入,字串長度也從s 1開始計算 2.next i next cur 大致是把下乙個字元的位置設為0 next cur i是將cur與i連線起來,相當於在cur後插入i,即cur i 3.遇到 時,令cur 0,即在0後插入元素 遇到 時,令cur last,即在最後乙個元...

UVA 11988 鍊錶

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

UVa11988 鍊錶簡單應用

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