之前遇到字典樹什麼的要不就用指標鍊錶,要不直接上list。
陣列鍊錶主要思想和指標差不多。
指標是用*next記錄下乙個的位址然後形成鏈。
陣列本身開闢空間時便是乙個位址所以也可以達到這點。
仔細分析一下陣列a的下標再不斷增大,但是記錄的資料卻在更新。
所以可以大致寫出
int next[11];
int now=0; //游標
for(int i=1;i<=n;i++)
不同題目游標跳動方式不同,現在上例題
小紫書uva 11988
題目大意輸入一串字元(空格用'_'代替)其中字元『[』表示home建(游標移到最前面) 字元 ']' 表示end鍵(游標移到最後) 輸出執行後的字串(長度100000);
樣例輸入 this_is_a_[beiju]_text
樣例輸出 beijuthis_is_a_text
拿到題目如果字串長度小的話可以直接暴力模擬。
不過字串長為100000的話如果插入乙個數到最前面後面的都要往後移動這樣時間量就大了(系統不想跟你說話同時丟給你乙個tle)
所以要用到鍊錶
不同的是游標可能跳到最前面或者最後面所以要設乙個變數記錄當前最後的位置
**如下
#include
#include
#define max 100000
int main()
for(i=next[0];i!=0;i=next[i])
printf("%c",s[i]);
printf("\n");]}
uva 11988 鍊錶 OR 塊狀鍊錶
鍊錶寫法 新增加乙個頭結點來使插入操作統一。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,b...
UVa11988 鍊錶簡單應用
這題嘗試了兩種方法,一是書上說的用陣列來實現鍊錶相關操作,一種是利用指標形式的鍊錶實現 1.使用字元陣列c儲存一行中每個字元的值 2.使用陣列next儲存下乙個字元的位置,可以看成c i 和next i 共同構成鍊錶中的乙個結點 所以next 0 c 0 對應的是頭節點 3.設當前字元的上個字元所在...
UVA 11988 悲劇文字 靜態鍊錶
你有乙個破損的鍵盤。鍵盤上的所有鍵都可以正常工作,但有時home鍵或者end鍵會自 動按下。你並不知道鍵盤存在這一問題,而是專心地打稿子,甚至連顯示器都沒開啟。當你 開啟顯示器之後,展現在你面前的是一段悲劇的文字。你的任務是在開啟顯示器之前計算出 這段悲劇文字。輸入包含多組資料。每組資料佔一行,包含...