1.1 題目
題號(hào)1:分別以單鏈表絮供、循環(huán)鏈表衣吠、雙向鏈表為例,實(shí)現(xiàn)線性表的建立壤靶、插入缚俏、刪除、查找等基本操作贮乳。
要求:能夠把建立忧换、插入、刪除等基本操作的過(guò)程隨時(shí)顯示輸出來(lái)向拆。
1.2 軟件功能
功能分為三個(gè)板塊亚茬,分別是單鏈表、循環(huán)鏈表亲铡、雙向鏈表的建立才写、插入葡兑、刪除等基本操作的過(guò)程奖蔓。
單鏈表
查看單鏈表定義,相應(yīng)算法代碼
建立一個(gè)帶頭結(jié)點(diǎn)的空單鏈表
指定插入位置及元素值到單鏈表中
隨機(jī)插入5個(gè)元素到單鏈表的尾部
指定刪除元素位置(從1開(kāi)始)讹堤,從單鏈表中刪除
輸入查找值吆鹤,得到元素在單鏈表中位置
清空銷(xiāo)毀單鏈表
能夠調(diào)整演示的速度快慢
循環(huán)鏈表
查看循環(huán)鏈表定義,相應(yīng)算法代碼
建立一個(gè)帶頭結(jié)點(diǎn)的空循環(huán)鏈表
指定插入位置及元素值到循環(huán)鏈表中
隨機(jī)插入5個(gè)元素到循環(huán)鏈表的尾部
指定刪除元素位置(從1開(kāi)始)洲守,從循環(huán)鏈表中刪除
輸入查找值疑务,得到元素在循環(huán)鏈表中位置
清空銷(xiāo)毀循環(huán)鏈表
能夠調(diào)整演示的速度快慢
雙向鏈表
查看雙向鏈表定義,相應(yīng)算法代碼
建立一個(gè)帶頭結(jié)點(diǎn)的空雙向鏈表
指定插入位置及元素值到雙向鏈表中
隨機(jī)插入5個(gè)元素到雙向鏈表的尾部
指定刪除元素位置(從1開(kāi)始)梗醇,從雙向鏈表中刪除
輸入查找值知允,得到元素在雙向鏈表中位置
清空銷(xiāo)毀雙向鏈表
能夠調(diào)整演示的速度快慢
上述所有功能采用面向?qū)ο蟮姆椒ㄍㄟ^(guò)C++語(yǔ)言程序結(jié)合QT框架實(shí)現(xiàn),后面會(huì)詳細(xì)介紹叙谨。
1.3 設(shè)計(jì)思想
學(xué)習(xí)相應(yīng)知識(shí)温鸽,做好必要的準(zhǔn)備工作
由于以前都是采用控制臺(tái)進(jìn)行編程,即便涉及一些簡(jiǎn)單的圖像界面,但是比較粗制簡(jiǎn)陋涤垫,無(wú)法入眼姑尺,并不是標(biāo)準(zhǔn)規(guī)范、人性化的用戶(hù)交互界面蝠猬,所以要完成本次的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)必須從零起步切蟋,學(xué)習(xí)可視化編程開(kāi)發(fā)。在C++的一系列可視化開(kāi)發(fā)框架下榆芦,我選擇用Qt來(lái)實(shí)現(xiàn)程序的功能柄粹,因?yàn)镼t相對(duì)較為簡(jiǎn)單,容易上手入門(mén)歧杏,同時(shí)Qt是較為新興的技術(shù)框架镰惦,并且跨平臺(tái)開(kāi)發(fā),很有前景和實(shí)用性犬绒。通過(guò)幾天的學(xué)習(xí)旺入,理解掌握的Qt的必要知識(shí),包括最為核心的信號(hào)和槽函數(shù)機(jī)制凯力、UI控件的使用茵瘾、Scene-View視圖框架等核心技術(shù)。
自頂向下設(shè)計(jì)
有了必要的準(zhǔn)備知識(shí)咐鹤,就可以進(jìn)行程序的總體規(guī)劃設(shè)計(jì)了拗秘。自頂向下分析是常用的分析方法,本次題目其實(shí)較為簡(jiǎn)單祈惶,常用的鏈表結(jié)構(gòu)我們?cè)趯W(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程時(shí)已經(jīng)非常熟練雕旨,此次實(shí)現(xiàn)圖形化界面的演示需要結(jié)合原有結(jié)構(gòu),融入圖形化元素和用戶(hù)界面接口捧请,對(duì)程序的功能分析凡涩,顯然程序的功能分為三個(gè)子功能模塊,分別對(duì)每個(gè)模塊進(jìn)行設(shè)計(jì)即可完成整個(gè)任務(wù)疹蛉。
分模塊實(shí)現(xiàn)
雖然程序有三個(gè)部分組成活箕,但是每個(gè)部分的功能需要完全一樣,用戶(hù)界面完全一樣可款,劃分為三個(gè)模塊育韩,只要實(shí)現(xiàn)一個(gè)模塊,其余兩個(gè)模塊只要非常短的時(shí)間就可完成闺鲸。實(shí)際開(kāi)發(fā)時(shí)筋讨,先實(shí)現(xiàn)單鏈表模塊,完成以后摸恍,循環(huán)鏈表和雙向鏈表只需要在前面基礎(chǔ)上稍作修改即可悉罕。
自底向上實(shí)現(xiàn)
具體實(shí)現(xiàn)時(shí),先定義每個(gè)類(lèi)的屬性和相應(yīng)函數(shù),然后根據(jù)定義蛮粮,設(shè)計(jì)相應(yīng)算法自底向上進(jìn)行實(shí)現(xiàn)益缎,逐個(gè)擊破,最終完成所有程序的設(shè)計(jì)然想。
參考文檔和完整的文檔和源碼下載地址: