c:homework:hw16b
國立屏東大學 資訊工程學系 程式設計(二)
作業17
turnin code c.hw17
due date: June 17, 13:30
* 延續上次的作業16
* 本次作業要turnin三個檔案
- stringLL.h –> 可以存放字串的Linked List資料結構的宣告定義
- stringLL.c –> 可以存放字串的Linked List資料結構的實作
- stringLLBox.c –> 用以接受使用者命令,以新增字串、列示字串、搜尋字串、刪除字串、清空所有字串等功能的主程式,其中關於字串的操作,必須要呼叫stringLL.c及stringLL.h所實作及定義的函式來完成
* 如果你設計remove()函式時,遇到函式名稱重複定義的問題,可以將revmoe()改名為removeElement()或其它你喜歡的名稱
使用Linked List來存放不定個數,長度亦不限定的新版本stringBox。請將LinkedList相關的宣告寫在stringLL.h中,實作寫在stringLL.c中,並以一含有main function的主程式stringLLBox.c完成以下功能。注意:關於Linked List部份依課堂講解的功能為主,但你必須將原本可儲存整數的功能,改成字串(其長度不固定)。在你的程式中,必須宣告一個指標永遠指向目前字元數最長的字串,如果一樣時,則列出最後加入的字串。程式執行時,可接受使用者命令進行相關操作,包含:
- l 列示目前已有的字串
- i 新增字串(字串中不會有空白字元),請以呼叫addLast()完成。
- m 列示字元數最多的字串(若字元數相同時,則列出最後新增的字串)
- s 搜尋字串是否存在。讓使用者輸入一個欲尋找的字串,並以search()完成,若找到符合的字串則顯示「found」,若找不到則顯示「none」
- d 刪除字串,此部份修改為讓使用者輸入欲刪除的字串,再搜尋Linked List找出該字串所在之後將之刪除(若有一個以上符合則全部加以刪除)。你應該使用remove()完成,若找到並刪除符合的字串則顯示「deleted」,若找不到則顯示「none」。注意,remove()只會刪除一筆,若有多筆要繼續呼叫才行。
- e 清空整個盒子
- q 結束程式的執行
程式執行結果參考:
[9:19 user@ws hw17] ./a.out [command] l -empty- [command] m -null- [command] q -bye- [9:19 user@ws hw17] ./a.out [command] l -empty- [command] i string=? Happy [command] l Happy-->end [command] i string=? birthday [command] i string=? to [command] i string=? someOneWithAVeryVeryLongName [command] l Happy-->birthday-->to-->someOneWithAVeryVeryLongName-->end [command] m The string with maximum length is someOneWithAVeryVeryLongName. [command] s string=? to found [command] s string=? XXX none [command] d string=? someOneWithAVeryVeryLongName deleted [command] l Happy-->birthday-->to-->end [command] i string=? You [command] l Happy-->birthday-->to-->You-->end [command] i string=? You [command] l Happy-->birthday-->to-->You-->You-->end [command] d string=? You deleted [command] l Happy-->birthday-->to-->end [command] i string=? You [command] l Happy-->birthday-->to-->You-->end [command] e [command] l -empty- [command] q -bye- [9:19 user@ws hw17]
c/homework/hw16b.txt · 上一次變更: 2019/07/02 15:01 由 127.0.0.1