版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數(shù)據(jù)結構課程設計報告</p><p> 一· 課程設計題目:鏈表存儲方式下的數(shù)據(jù)的插入,刪除和搜索。</p><p> 二· 課程設計內容描述:</p><p> 需求 以動態(tài)演示的形式向用戶展示在鏈表存儲方式下的數(shù)據(jù)記性插入,刪除和搜索的實現(xiàn)方法和內部過程。</p><p> 輸入
2、 以系統(tǒng)自動生成的方式新建鏈表,可以選擇有序或無序生成,在面板顯示出鏈表,鏈結點以箭頭連接,以帶色的方框內的數(shù)字為數(shù)據(jù),需要生成特定鏈表可選擇數(shù)據(jù)插入在鏈表首。</p><p> 輸出 在面板顯示及顯示三種操作(插入,查找和刪除)的具體方法和流程,顯示方式以指示箭頭來表示對鏈表內容或位置的查詢。插入或刪除操作則在圖中畫出節(jié)點增加或者減少的過程。</p><p> 功能 該
3、程序可實現(xiàn)單向鏈表的插入刪除和查找過程的演示,以動態(tài)的顯示展示其操作過程。</p><p> 測試 通過輸入框中用戶輸入的數(shù)據(jù)和七個按鈕的操作選擇相應的功能,可實現(xiàn)動態(tài)演示。</p><p><b> 三· 思想和算法:</b></p><p> 對于演示可分為用戶界面和動畫演示兩個部分在用戶界面添加按鈕,輸入框,單項選擇
4、和演示區(qū)域,演示區(qū)域將使用動畫演示進行展示。在用戶界面分別給按鈕及輸入框等添加監(jiān)聽器,通過調用動畫演示方法以實現(xiàn)按鈕功能。動畫演示通過創(chuàng)建show類實現(xiàn)鏈結點和創(chuàng)建showgroup類實現(xiàn)鏈結點的的動態(tài)顯示。其內部引用awt.Graphics類實現(xiàn)畫線等功能。</p><p> 對于三種操作來說,插入和刪除的實現(xiàn)都必須依靠查找的功能,因此,在代碼中有很大一部分是可以通用的,實現(xiàn)查找功能可分為兩種:按用戶輸入的數(shù)
5、據(jù)查找和按用戶輸入的位置查找,判定條件分別是show類中的值和showgroup中的curIn值。插入操作需要在已建好的鏈表中增加一個節(jié)點,這就需要插入點以后的節(jié)點向后移動一個位置,將插入的節(jié)點放在該位置上,而刪除是將插入點以后的節(jié)點向前移動一個位置。在showgroup類中,定義鏈表數(shù)據(jù)的數(shù)組以存儲數(shù)據(jù),將數(shù)組內的數(shù)據(jù)分別賦給各個節(jié)點,通過創(chuàng)建鏈表的方法創(chuàng)建鏈表。</p><p><b> 四
6、83;使用說明</b></p><p><b> 1·運行</b></p><p> 打開eclipse,導入工程,運行后,將顯示如下界面</p><p> 界面中有七個按鈕,一個單選項和兩個輸入框</p><p> 連續(xù)單擊“新建”,按提示操作</p><p>
7、選擇無序,出現(xiàn)以下界面</p><p> 或者選擇有序則出現(xiàn)以下界面</p><p> 當輸入有誤時,則會有提示</p><p><b> 新建功能完成</b></p><p><b> 位置查找功能</b></p><p> 連續(xù)單擊“數(shù)據(jù)查找”,按提示操作<
8、;/p><p><b> 數(shù)據(jù)查找功能</b></p><p> 輸入位置或數(shù)據(jù)不存在時</p><p><b> 刪除操作</b></p><p><b> 按位置刪除</b></p><p><b> 其他操作不再贅述。</b&
9、gt;</p><p><b> 五·調試說明</b></p><p> 導入工程后,打開所有代碼,主程序在link.linklist,運行即可。</p><p><b> 六·代碼</b></p><p><b> Linklist類</b><
10、;/p><p> package link;</p><p> import java.applet.Applet;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p><p> import java.text.NumberForm
11、at;</p><p> import java.util.EventObject;</p><p> public class linklist extends Applet implements Runnable, ActionListener,</p><p> ItemListener {</p><p> public vo
12、id init() {</p><p> // 添加panel</p><p> setLayout(new FlowLayout());</p><p> Panel panel = new Panel();</p><p> add(panel);</p><p> panel.setLayout(new
13、 FlowLayout());</p><p> Panel panel1 = new Panel();</p><p> panel.add(panel1);</p><p> panel1.setLayout(new FlowLayout(0));</p><p> newButton = new Button("新建&
14、quot;);</p><p> panel1.add(newButton);</p><p> newButton.addActionListener(this);</p><p><b> // 插入按鈕設置</b></p><p> insposbutton = new Button("位置插入&
15、quot;);</p><p> panel1.add(insposbutton);</p><p> insposbutton.addActionListener(this);</p><p> insdatabutton = new Button("數(shù)據(jù)插入");</p><p> panel1.add(ins
16、databutton);</p><p> insdatabutton.addActionListener(this);</p><p><b> // 查找按鈕設置</b></p><p> finddatabutton = new Button("數(shù)據(jù)查找");</p><p> pane
17、l1.add(finddatabutton);</p><p> finddatabutton.addActionListener(this);</p><p> findposbutton = new Button("位置查找");</p><p> panel1.add(findposbutton);</p><p&
18、gt; findposbutton.addActionListener(this);</p><p><b> // 刪除按鈕設置</b></p><p> deldatabutton = new Button("數(shù)據(jù)刪除");</p><p> panel1.add(deldatabutton);</p>
19、;<p> deldatabutton.addActionListener(this);</p><p> delposbutton = new Button("位置刪除");</p><p> panel1.add(delposbutton);</p><p> delposbutton.addActionListener
20、(this);</p><p> Panel panel2 = new Panel();</p><p> panel.add(panel2);</p><p> panel2.setLayout(new GridLayout(2, 1));</p><p> CheckboxGroup checkboxgroup = new Che
21、ckboxGroup();</p><p> nosort = new Checkbox("無序", true, checkboxgroup);</p><p> panel2.add(nosort);</p><p> nosort.addItemListener(this);</p><p> sort = n
22、ew Checkbox("有序", false, checkboxgroup);</p><p> panel2.add(sort);</p><p> sort.addItemListener(this);</p><p> Panel panel3 = new Panel();</p><p> panel.a
23、dd(panel3);</p><p> panel3.setLayout(new FlowLayout(2));</p><p> panel3.add(new Label("輸入數(shù)字: "));</p><p> panel3.add(tf);</p><p> Panel panel4=new Panel()
24、;</p><p> panel.add(panel4);</p><p> panel4.setLayout(new FlowLayout(4));</p><p> panel4.add(new Label(""));</p><p> panel4.add(pf);</p><p>
25、 //panel3.add(new Label("shur"));</p><p> //panel3.add(pf);</p><p> theshowgroup = new showGroup();</p><p> theshowgroup.doFill(13);</p><p> repaint();<
26、;/p><p><b> }</b></p><p> public void start() {</p><p> if (runner == null) {</p><p> runner = new Thread(this);</p><p> runner.start();</
27、p><p><b> }</b></p><p><b> }</b></p><p> @SuppressWarnings("deprecation")</p><p> public void stop() {</p><p> if (runn
28、er != null) {</p><p> runner.stop();</p><p> runner = null;</p><p><b> }</b></p><p><b> }</b></p><p> public void paint(Graphi
29、cs g) {</p><p> theshowgroup.draw(g);</p><p><b> }</b></p><p> public void update(Graphics g) {</p><p><b> paint(g);</b></p><p>
30、;<b> }</b></p><p> // 監(jiān)聽按鈕及輸入框</p><p> public void actionPerformed(ActionEvent actionevent) {</p><p> isNumber = true;</p><p> String s1 = tf.getText()
31、;</p><p> String s2=pf.getText();</p><p> if (s2==null)s2="1";</p><p><b> try {</b></p><p> GPNumber = Integer.parseInt(s1);</p><p&
32、gt; gpnumber=Integer.parseInt(s2);</p><p> } catch (NumberFormatException _ex) {</p><p> GPNumber = 0;</p><p> gpnumber=0;</p><p> isNumber = false;</p><
33、;p><b> }</b></p><p><b> // 監(jiān)聽按鈕</b></p><p> //各個按鈕的監(jiān)聽,輸入數(shù)據(jù)和調用相應的方法</p><p> if (actionevent.getSource() == newButton)</p><p> theshowgrou
34、p.newList(isNumber, GPNumber);</p><p> else if (actionevent.getSource() == insdatabutton)</p><p> theshowgroup.datainsert(isNumber, GPNumber);</p><p> else if (actionevent.getSou
35、rce() == insposbutton)</p><p> theshowgroup.posinsert(isNumber, GPNumber,gpnumber);</p><p> else if (actionevent.getSource() == finddatabutton)</p><p> theshowgroup.datafind(isNu
36、mber, GPNumber);</p><p> else if (actionevent.getSource() == findposbutton)</p><p> theshowgroup.posfind(isNumber, GPNumber);</p><p> else if (actionevent.getSource() == deldatab
37、utton)</p><p> theshowgroup.datadelete(isNumber, GPNumber);</p><p> else if (actionevent.getSource() == delposbutton)</p><p> theshowgroup.posdelete(isNumber, GPNumber);</p>
38、;<p> repaint();</p><p><b> try {</b></p><p> Thread.sleep(10L);</p><p><b> return;</b></p><p> } catch (InterruptedException _ex) {
39、</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> public void itemStateChanged(ItemEvent itemevent) {</p>
40、<p> boolean flag = itemevent.getSource() == nosort;</p><p> boolean flag1 = theshowgroup.getSortStatus();</p><p> boolean flag2 = theshowgroup.getChangeStatus();</p><p>
41、theshowgroup.setSortStatus(flag);</p><p> if (flag && flag2 && !flag1 || !flag && !flag2 && flag1) {</p><p> nosort.setState(true);</p><p> sort.s
42、etState(false);</p><p><b> }</b></p><p> if (!flag && flag2 && flag1 || flag && !flag2 && !flag1) {</p><p> nosort.setState(false);<
43、;/p><p> sort.setState(true);</p><p><b> }</b></p><p><b> }</b></p><p> public void run() {</p><p><b> do</b></p&g
44、t;<p> ; while (true);</p><p><b> }</b></p><p> public linklist() {</p><p> GPNumber = -1;</p><p> isNumber = false;</p><p> tf =
45、new TextField("", 4);</p><p> pf =new TextField("",4);</p><p><b> }</b></p><p> private Thread runner;</p><p> private showGroup the
46、showgroup;</p><p> private int GPNumber,gpnumber;</p><p> private boolean isNumber;</p><p> private TextField tf,pf;</p><p> private Checkbox nosort;</p><
47、;p> private Checkbox sort;</p><p> private Button newButton;</p><p> private Button insdatabutton, insposbutton;</p><p> private Button finddatabutton, findposbutton;</p&g
48、t;<p> private Button deldatabutton, delposbutton;</p><p><b> }</b></p><p> Showgroup類</p><p> package link;</p><p> import java.awt.Color;</
49、p><p> import java.awt.Graphics;</p><p> class showGroup {</p><p> public showGroup() {</p><p> linkArray = new link[28];</p><p> totalLinks = 0;</p&g
50、t;<p> curIn = oldCurIn = 0;</p><p> codePart = 1;</p><p> // codePart2 = 1;</p><p> drawMode = 2;</p><p> note = "按任意鍵";</p><p> no
51、tSorted = true;</p><p> isOKChangeSort = false;</p><p> areInserting = false;</p><p> // insPKeynow=0;</p><p><b> }</b></p><p><b> /
52、/ 創(chuàng)建節(jié)點</b></p><p> private show makeshow(int i) {</p><p> int j = 100 + (int) (Math.random() * 154D);</p><p> int k = 100 + (int) (Math.random() * 154D);</p><p&g
53、t; int l = 100 + (int) (Math.random() * 154D);</p><p> Color color = new Color(j, k, l);</p><p> return new show(i, color);</p><p><b> }</b></p><p> //
54、 獲取有序或無序鏈表</p><p> public boolean getSortStatus() {</p><p> return notSorted;</p><p><b> }</b></p><p> // 獲取選擇改變值</p><p> public boolean g
55、etChangeStatus() {</p><p> return isOKChangeSort;</p><p><b> }</b></p><p> public void setSortStatus(boolean flag) {</p><p> if (isOKChangeSort &&am
56、p; flag != notSorted)</p><p> notSorted = flag;</p><p> if (!isOKChangeSort)</p><p> note = "改變順序";</p><p> drawMode = 1;</p><p><b> }
57、</b></p><p> // 新建鏈表,int為鏈表長度</p><p> public void newList(boolean flag, int i) {</p><p><b> // 判斷按鈕</b></p><p> areInserting = false;</p>&
58、lt;p> areDeleting = false;</p><p> if (opMode != 1) {</p><p> opMode = 1;</p><p> codePart = 1;</p><p><b> }</b></p><p> switch (codeP
59、art) {</p><p> case 1: // '\001'</p><p> note = "輸入鏈表長度,第一個輸入框為長度,第二個輸入0";</p><p> drawMode = 1;</p><p> codePart = 2;</p><p> oldCu
60、rIn = curIn;</p><p> curIn = 0;</p><p><b> return;</b></p><p> case 2: // '\002'</p><p> if (!flag || i < 0 || i > 28) {</p><p&
61、gt; note = "長度值有誤: (0 _" + 28 + ")";</p><p> codePart = 1;</p><p><b> } else {</b></p><p> note = "即將創(chuàng)建長度為 " + i + "的鏈表";<
62、/p><p> codePart = 3;</p><p><b> }</b></p><p> drawMode = 1;</p><p><b> return;</b></p><p> case 3: // '\003'</p>
63、<p> note = "選擇有序或者無序鏈表";</p><p> isOKChangeSort = true;</p><p> drawMode = 1;</p><p> codePart = 4;</p><p><b> return;</b></p>&
64、lt;p> case 4: // '\004'</p><p> if (notSorted)</p><p> note = "你選擇了數(shù)據(jù)無序";</p><p><b> else</b></p><p> note = "您選擇了數(shù)據(jù)有序";
65、</p><p> isOKChangeSort = false;</p><p> totalLinks = 0;</p><p> drawMode = 2;</p><p> codePart = 5;</p><p><b> return;</b></p><
66、;p> case 5: // '\005'</p><p> totalLinks = i;</p><p> doFill(totalLinks);</p><p> note = "鏈表創(chuàng)建完成;鏈表長度 = " + totalLinks;</p><p> oldCurIn = cur
67、In;</p><p> curIn = 0;</p><p> drawMode = 2;</p><p> codePart = 6;</p><p><b> return;</b></p><p> case 6: // '\006'</p><
68、;p> note = "單擊任意按鈕";</p><p> drawMode = 1;</p><p> codePart = 1;</p><p><b> return;</b></p><p><b> }</b></p><p>&
69、lt;b> }</b></p><p><b> // 建立數(shù)組存儲</b></p><p> public void doFill(int i) {</p><p> totalLinks = i;</p><p> for (int j = 0; j < 28; j++)</p
70、><p> linkArray[j] = null;</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> codePart = 1;</p><p> if (notSorted) {</p><p> for (int k =
71、 0; k < totalLinks; k++) {</p><p> // 隨機數(shù)生成,存入數(shù)組</p><p> int i1 = (int) (Math.random() * 999D);</p><p> tempPers = makeshow(i1);</p><p> linkArray[k] = new link(
72、tempPers);</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p> int k1 = 0;</p><p> int i2 = 0;</p&
73、gt;<p> for (int l = 0; l < totalLinks; l++) {</p><p> int l1 = (int) ((999F - (float) i2) / ((float) totalLinks - (float) l));</p><p> int j1 = (int) (Math.random() * (double) l1);
74、</p><p><b> k1 += j1;</b></p><p><b> i2 = k1;</b></p><p> tempPers = makeshow(k1);</p><p> linkArray[l] = new link(tempPers);</p><
75、;p><b> }</b></p><p><b> }</b></p><p> //按輸入的數(shù)據(jù)插入</p><p> public void datainsert(boolean flag, int i) </p><p><b> {</b></p
76、><p><b> //位置插入算法</b></p><p> areDeleting = false;</p><p> if (opMode != 3) {</p><p> opMode = 3;</p><p> codePart = 1;</p><p>&
77、lt;b> }</b></p><p> switch (codePart) {</p><p> case 1: // '\001'</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> insertAtEnd =
78、 false;</p><p> note = "輸入要插入的數(shù)據(jù)";</p><p> drawMode = 1;</p><p> codePart = 2;</p><p><b> return;</b></p><p> case 2: // '\0
79、02'</p><p> if (!flag || i < 0 || i > 999) {</p><p> note = "無法插入: 數(shù)值在0 - " + 999;</p><p> codePart = 1;</p><p> } else if (totalLinks >= 28)
80、 {</p><p> note = "無法插入: 數(shù)據(jù)已滿";</p><p> codePart = 6;</p><p><b> } else {</b></p><p> insKey = i;</p><p> tempPers = makeshow(in
81、sKey);</p><p> if (notSorted) {</p><p> note = "即將插入這個數(shù)據(jù) " + insKey;</p><p> codePart = 4;</p><p><b> } else {</b></p><p> note
82、= "即將尋找插入點";</p><p> codePart = 3;</p><p><b> }</b></p><p><b> }</b></p><p> drawMode = 1;</p><p><b> return;&
83、lt;/b></p><p> case 3: // '\003'</p><p> if (curIn == totalLinks - 1</p><p> && insKey > linkArray[curIn].persData.getHeight()) {</p><p> note
84、 = "Found insertion point at end of list";</p><p> insertAtEnd = true;</p><p> codePart = 5;</p><p> } else if (insKey > linkArray[curIn].persData.getHeight()) {<
85、/p><p> note = "正尋找位置";</p><p> oldCurIn = curIn++;</p><p> codePart = 3;</p><p><b> } else {</b></p><p> note = "已找到位置";
86、</p><p> codePart = 4;</p><p><b> }</b></p><p> drawMode = 1;</p><p><b> return;</b></p><p> case 4: // '\004'</p&g
87、t;<p> areInserting = true;</p><p> if (notSorted)</p><p> insDex = 0;</p><p><b> else</b></p><p> insDex = curIn;</p><p> note =
88、"數(shù)據(jù)插入,鏈表復位";</p><p> drawMode = 1;</p><p> codePart = 5;</p><p><b> return;</b></p><p> case 5: // '\005'</p><p> if (in
89、sertAtEnd) {</p><p> oldCurIn = curIn++;</p><p> note = " 插入以下數(shù)據(jù)" + insKey</p><p> + " 在鏈表末";</p><p><b> } else {</b></p><
90、;p> areInserting = false;</p><p> for (int j = totalLinks; j > curIn; j--)</p><p> linkArray[j] = linkArray[j - 1];</p><p> note = " 插入以下數(shù)據(jù)" + insKey;</p>
91、<p><b> }</b></p><p> linkArray[curIn] = new link(tempPers);</p><p> totalLinks++;</p><p> drawMode = 2;</p><p> codePart = 6;</p><p&g
92、t;<b> return;</b></p><p> case 6: // '\006'</p><p> note = "插入完成;鏈表長度 = " + totalLinks;</p><p> drawMode = 1;</p><p> codePart = 7;&l
93、t;/p><p><b> return;</b></p><p> case 7: // '\007'</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> note = "按任意按鈕";<
94、/p><p> drawMode = 1;</p><p> codePart = 1;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p
95、> //按輸入的位置插入</p><p> public void posinsert(boolean flag, int i,int data)//int data) </p><p><b> {</b></p><p> // 按位置插入算法</p><p> areDeleting = false
96、;</p><p> if (opMode != 3) {</p><p> opMode = 3;</p><p> codePart = 1;</p><p><b> }</b></p><p> switch (codePart) {</p><p>
97、case 1: // '\001'</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> insertAtEnd = false;</p><p> note = "輸入要插入的位置和數(shù)據(jù),分別填入兩個輸入框";</p><
98、;p> drawMode = 1;</p><p> codePart = 2;</p><p><b> return;</b></p><p> case 2: // '\002'</p><p> if (!flag || i < 0 || i > totalLinks)
99、 {</p><p> note = "無法插入,位置超限";</p><p> codePart = 1;</p><p> } else if (totalLinks >= 28) {</p><p> note = "無法插入: 數(shù)據(jù)已滿";</p><p>
100、 codePart = 6;</p><p><b> } else {</b></p><p> insPKey = i;</p><p> tempPers = makeshow(data);</p><p> if (notSorted) {</p><p> note = &q
101、uot;即將插入這個數(shù)據(jù) ,位置" + insPKey+"數(shù)據(jù)"+data;</p><p> codePart = 4;</p><p><b> } else {</b></p><p> note = "即將尋找插入點";</p><p> codePart
102、 = 3;</p><p><b> }</b></p><p><b> }</b></p><p> drawMode = 1;</p><p><b> return;</b></p><p> case 3: // '\003&
103、#39;</p><p> if (curIn == totalLinks - 1</p><p> && insKey ==curIn) {</p><p> note = "已找到位置";</p><p> insertAtEnd = true;</p><p> co
104、dePart = 5;</p><p> } else if (insPKey > curIn) {</p><p> note = "正尋找位置";</p><p> oldCurIn = curIn++;</p><p> codePart = 3;</p><p><b&g
105、t; } else {</b></p><p> note = "已找到位置";</p><p> codePart = 4;</p><p><b> }</b></p><p> drawMode = 1;</p><p><b> ret
106、urn;</b></p><p> case 4: // '\004'</p><p> areInserting = true;</p><p> if (notSorted)</p><p> insDex = 0;</p><p><b> else</b&g
107、t;</p><p> insDex = curIn;</p><p> note = "數(shù)據(jù)插入,鏈表復位";</p><p> drawMode = 1;</p><p> codePart = 5;</p><p><b> return;</b></p&
108、gt;<p> case 5: // '\005'</p><p> if (insertAtEnd) {</p><p> oldCurIn = curIn++;</p><p> note = " 插入以下數(shù)據(jù)" + insPKey</p><p><b> + &qu
109、ot;在鏈表末";</b></p><p><b> } else {</b></p><p> areInserting = false;</p><p> for (int j = totalLinks; j > curIn; j--)</p><p> linkArray[j]
110、= linkArray[j - 1];</p><p> note = " 插入以下數(shù)據(jù)" + insPKey;</p><p><b> }</b></p><p> linkArray[curIn] = new link(tempPers);</p><p> totalLinks++;&
111、lt;/p><p> drawMode = 2;</p><p> codePart = 6;</p><p><b> return;</b></p><p> case 6: // '\006'</p><p> note = "插入完成; 鏈表長度 = &qu
112、ot; + totalLinks;</p><p> drawMode = 1;</p><p> codePart = 7;</p><p><b> return;</b></p><p> case 7: // '\007'</p><p> oldCurIn =
113、curIn;</p><p> curIn = 0;</p><p> note = "按任意按鈕";</p><p> drawMode = 1;</p><p> codePart = 1;</p><p><b> return;</b></p>
114、<p><b> }</b></p><p><b> }</b></p><p> //按輸入的數(shù)據(jù)查找</p><p> public void datafind(boolean flag, int i) {</p><p><b> // 數(shù)據(jù)查找算法</b
115、></p><p> areInserting = false;</p><p> areDeleting = false;</p><p> if (opMode != 4) {</p><p> opMode = 4;</p><p> codePart = 1;</p><p&
116、gt;<b> }</b></p><p> switch (codePart) {</p><p> case 4: // '\004'</p><p> case 5: // '\005'</p><p><b> default:</b></p&
117、gt;<p><b> break;</b></p><p> case 1: // '\001'</p><p> note = "輸入要查找的數(shù)據(jù)";</p><p> codePart = 2;</p><p><b> break;</b
118、></p><p> case 2: // '\002'</p><p> if (!flag || i < 0 || i > 999) {</p><p> note = "輸入有誤0-" + 999;</p><p> codePart = 1;</p><
119、p><b> } else {</b></p><p> findKey = i;</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> note = "正在查找 " + findKey;</p><p>
120、; codePart = 3;</p><p><b> }</b></p><p><b> break;</b></p><p> case 3: // '\003'</p><p> if (linkArray[curIn].persData.getHeight()
121、== findKey) {</p><p> note = "已經找到" + findKey;</p><p> codePart = 6;</p><p><b> break;</b></p><p><b> }</b></p><p>
122、if (curIn == totalLinks - 1 || !notSorted</p><p> && curIn > findKey) {</p><p> note = "未找到 " + findKey;</p><p> codePart = 6;</p><p><b>
123、 } else {</b></p><p> note = "正在查找 " + findKey;</p><p> oldCurIn = curIn++;</p><p> codePart = 3;</p><p><b> }</b></p><p>&
124、lt;b> break;</b></p><p> case 6: // '\006'</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> note = "按任意鍵";</p><p> cod
125、ePart = 1;</p><p><b> break;</b></p><p><b> }</b></p><p> drawMode = 1;</p><p><b> }</b></p><p> //按輸入的位置查找</p&
126、gt;<p> public void posfind(boolean flag, int i) {</p><p><b> // 位置查找算法</b></p><p> areInserting = false;</p><p> areDeleting = false;</p><p> i
127、f (opMode != 4) {</p><p> opMode = 4;</p><p> codePart = 1;</p><p><b> }</b></p><p> switch (codePart) {</p><p> case 4: // '\004'
128、</p><p> case 5: // '\005'</p><p><b> default:</b></p><p><b> break;</b></p><p> case 1: // '\001'</p><p> not
129、e = "輸入你查找的位置";</p><p> codePart = 2;</p><p><b> break;</b></p><p> case 2: // '\002'</p><p> if (!flag || i < 0 || i > 28) {<
130、;/p><p> note = "位置超出0- " + totalLinks;</p><p> codePart = 1;</p><p><b> } else {</b></p><p> findPKey = i;</p><p> oldCurIn = curI
131、n;</p><p> curIn = 0;</p><p> note = "正在查詢位置 " + findPKey;</p><p> codePart = 3;</p><p><b> }</b></p><p><b> break;</b&
132、gt;</p><p> case 3: // '\003'</p><p> if (curIn == findPKey) {</p><p> note = "已經找到位置 " + findPKey;</p><p> codePart = 6;</p><p><
133、b> break;</b></p><p><b> }</b></p><p> if (curIn == totalLinks - 1 || !notSorted && curIn > findPKey) {</p><p> note = "無法找到位置 " + find
134、PKey;</p><p> codePart = 6;</p><p><b> } else {</b></p><p> note = "正在查詢位置 " + findKey;</p><p> oldCurIn = curIn++;</p><p> code
135、Part = 3;</p><p><b> }</b></p><p><b> break;</b></p><p> case 6: // '\006'</p><p> oldCurIn = curIn;</p><p> curIn = 0
136、;</p><p> note = "按任意鍵";</p><p> codePart = 1;</p><p><b> break;</b></p><p><b> }</b></p><p> drawMode = 1;</p>
137、;<p><b> }</b></p><p> //按輸入的數(shù)據(jù)刪除</p><p> public void datadelete(boolean flag, int i) {</p><p><b> // 數(shù)據(jù)刪除算法</b></p><p> areInsertin
138、g = false;</p><p> if (opMode != 5) {</p><p> opMode = 5;</p><p> codePart = 1;</p><p><b> }</b></p><p> switch (codePart) {</p>&l
139、t;p> case 1: // '\001'</p><p> note = "輸入要刪除的數(shù)據(jù)";</p><p> drawMode = 1;</p><p> codePart = 2;</p><p><b> return;</b></p>&l
140、t;p> case 2: // '\002'</p><p> if (!flag || i < 0 || i > 999) {</p><p> note = "數(shù)據(jù)超限0 - " + 999;</p><p> codePart = 1;</p><p><b>
141、} else {</b></p><p> delKey = i;</p><p> oldCurIn = curIn;</p><p> curIn = 0;</p><p> note = "正在查找數(shù)據(jù) " + delKey;</p><p> codePart = 3;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結構課程設計---鏈表的創(chuàng)建、插入、刪除、修改
- 雙向鏈表的建立插入刪除算法的實現(xiàn)-數(shù)據(jù)結構課程設計
- 課程設計---雙鏈表的建立插入查找刪除算法的實現(xiàn)
- 單鏈表的創(chuàng)建、插入和刪除
- 建立刪除和插入動態(tài)單向鏈表
- 數(shù)據(jù)結構課程設計---雙向鏈表
- 數(shù)據(jù)結構課程設計-鏈表操作
- 數(shù)據(jù)結構課程設計---以鄰接鏈表的方式確定一個無向網(wǎng)
- 數(shù)據(jù)結構課程設計---鏈表操作
- 數(shù)據(jù)結構課程設計報告--鏈表
- 數(shù)據(jù)庫課程設計-鏈表的簡單操作
- 課程設計鏈表的交叉合并課程設計
- 數(shù)據(jù)結構課程設計--雙向循環(huán)鏈表的實現(xiàn)
- 數(shù)據(jù)結構課程設計報告---鏈表操作
- 數(shù)據(jù)結構課程設計報告---鏈表操作
- 數(shù)據(jù)結構課程設計-- 循環(huán)單鏈表
- 數(shù)據(jù)結構課程設計---城市鏈表的設計與實現(xiàn)
- 城市鏈表課程設計
- 城市鏈表課程設計
- 實現(xiàn)兩個鏈表的合并數(shù)據(jù)結構課程設計
評論
0/150
提交評論