資料結構 悲劇文字(鍊錶)

2021-10-07 07:04:12 字數 1477 閱讀 2025

問題描述 :

你有乙個破損的鍵盤。鍵盤上的所有鍵都可以正常工作,但有時home鍵或者end鍵會自

動按下。你並不知道鍵盤存在這一問題,而是專心地輸入英文單詞,甚至連顯示器都沒瞧一眼。當你

看顯示器時,展現在你面前的是一段悲劇的文字。你的任務是計算這段文字有幾個單詞。

輸入包含多組資料。每組資料佔一行,包含不超過20000個英文本母、空格、字元「[」或

者「]」(這多達20000個字元的資料會顯示在一行,不用擔心會換行)。其中字元「[」表示home鍵(將游標定位到一行的開頭),「]」表示end鍵(將游標定位到一行的結尾)。輸入結束標誌為檔案結束符(eof)。輸

入文字不超過50kb。

對於每組資料,輸出乙個數字,即這一行悲劇文字中共有幾個單詞(以空格分隔的連續字串為乙個單詞)。

比如,輸入:

this is a [beiju] text

得到的悲劇文字是:

beijuthis is a text

因此,共有4個單詞。

而輸入:

this[ ]is[ ]a [beiju] text

得到的悲劇文字是:

beiju thisisa text

因此,共有3個單詞。

本程式用帶頭結點的單鏈表實現,請編寫其中的count函式,實現統計單詞個數的功能。請不要嘗試使用陣列實現,那樣會導致程式執行超時。

輸入說明 :

可輸入多組文字,每組包含一行,其中包括英文本母組成的單詞、空格、[、]

輸出說明 :

輸出乙個整數,為單詞數目

輸入範例 :

this is a [beiju] text

this[ ]is[ ]a [beiju] text

輸出範例 :43

#include

#include

#include

#include

#include

using

namespace std;

struct node

;struct node*

create

(char text)

else

if(text[i]

==']'

)else

}return head;

}int

count

(struct node *head)

if(flag==

1&& p-

>data==

' ')

p=p-

>next;

}return sum;

//函式形參為煉表頭指標,注意,其中第乙個結點是頭結點

}int

main()

//printf("%.2f\n", (double)clock()/clocks_per_sec);

return0;

}

UVA 11988 悲劇文字 靜態鍊錶

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

資料結構 鍊錶

鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...

資料結構 鍊錶

鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...