版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告</p><p> 一· 課程設(shè)計(jì)題目:鏈表存儲(chǔ)方式下的數(shù)據(jù)的插入,刪除和搜索。</p><p> 二· 課程設(shè)計(jì)內(nèi)容描述:</p><p> 需求 以動(dòng)態(tài)演示的形式向用戶展示在鏈表存儲(chǔ)方式下的數(shù)據(jù)記性插入,刪除和搜索的實(shí)現(xiàn)方法和內(nèi)部過(guò)程。</p><p> 輸入
2、 以系統(tǒng)自動(dòng)生成的方式新建鏈表,可以選擇有序或無(wú)序生成,在面板顯示出鏈表,鏈結(jié)點(diǎn)以箭頭連接,以帶色的方框內(nèi)的數(shù)字為數(shù)據(jù),需要生成特定鏈表可選擇數(shù)據(jù)插入在鏈表首。</p><p> 輸出 在面板顯示及顯示三種操作(插入,查找和刪除)的具體方法和流程,顯示方式以指示箭頭來(lái)表示對(duì)鏈表內(nèi)容或位置的查詢。插入或刪除操作則在圖中畫(huà)出節(jié)點(diǎn)增加或者減少的過(guò)程。</p><p> 功能 該
3、程序可實(shí)現(xiàn)單向鏈表的插入刪除和查找過(guò)程的演示,以動(dòng)態(tài)的顯示展示其操作過(guò)程。</p><p> 測(cè)試 通過(guò)輸入框中用戶輸入的數(shù)據(jù)和七個(gè)按鈕的操作選擇相應(yīng)的功能,可實(shí)現(xiàn)動(dòng)態(tài)演示。</p><p><b> 三· 思想和算法:</b></p><p> 對(duì)于演示可分為用戶界面和動(dòng)畫(huà)演示兩個(gè)部分在用戶界面添加按鈕,輸入框,單項(xiàng)選擇
4、和演示區(qū)域,演示區(qū)域?qū)⑹褂脛?dòng)畫(huà)演示進(jìn)行展示。在用戶界面分別給按鈕及輸入框等添加監(jiān)聽(tīng)器,通過(guò)調(diào)用動(dòng)畫(huà)演示方法以實(shí)現(xiàn)按鈕功能。動(dòng)畫(huà)演示通過(guò)創(chuàng)建show類實(shí)現(xiàn)鏈結(jié)點(diǎn)和創(chuàng)建showgroup類實(shí)現(xiàn)鏈結(jié)點(diǎn)的的動(dòng)態(tài)顯示。其內(nèi)部引用awt.Graphics類實(shí)現(xiàn)畫(huà)線等功能。</p><p> 對(duì)于三種操作來(lái)說(shuō),插入和刪除的實(shí)現(xiàn)都必須依靠查找的功能,因此,在代碼中有很大一部分是可以通用的,實(shí)現(xiàn)查找功能可分為兩種:按用戶輸入的數(shù)
5、據(jù)查找和按用戶輸入的位置查找,判定條件分別是show類中的值和showgroup中的curIn值。插入操作需要在已建好的鏈表中增加一個(gè)節(jié)點(diǎn),這就需要插入點(diǎn)以后的節(jié)點(diǎn)向后移動(dòng)一個(gè)位置,將插入的節(jié)點(diǎn)放在該位置上,而刪除是將插入點(diǎn)以后的節(jié)點(diǎn)向前移動(dòng)一個(gè)位置。在showgroup類中,定義鏈表數(shù)據(jù)的數(shù)組以存儲(chǔ)數(shù)據(jù),將數(shù)組內(nèi)的數(shù)據(jù)分別賦給各個(gè)節(jié)點(diǎn),通過(guò)創(chuàng)建鏈表的方法創(chuàng)建鏈表。</p><p><b> 四
6、83;使用說(shuō)明</b></p><p><b> 1·運(yùn)行</b></p><p> 打開(kāi)eclipse,導(dǎo)入工程,運(yùn)行后,將顯示如下界面</p><p> 界面中有七個(gè)按鈕,一個(gè)單選項(xiàng)和兩個(gè)輸入框</p><p> 連續(xù)單擊“新建”,按提示操作</p><p>
7、選擇無(wú)序,出現(xiàn)以下界面</p><p> 或者選擇有序則出現(xiàn)以下界面</p><p> 當(dāng)輸入有誤時(shí),則會(huì)有提示</p><p><b> 新建功能完成</b></p><p><b> 位置查找功能</b></p><p> 連續(xù)單擊“數(shù)據(jù)查找”,按提示操作<
8、;/p><p><b> 數(shù)據(jù)查找功能</b></p><p> 輸入位置或數(shù)據(jù)不存在時(shí)</p><p><b> 刪除操作</b></p><p><b> 按位置刪除</b></p><p><b> 其他操作不再贅述。</b&
9、gt;</p><p><b> 五·調(diào)試說(shuō)明</b></p><p> 導(dǎo)入工程后,打開(kāi)所有代碼,主程序在link.linklist,運(yùn)行即可。</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> // 插入按鈕設(shè)置</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> // 查找按鈕設(shè)置</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> // 刪除按鈕設(shè)置</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("無(wú)序", 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)聽(tīng)按鈕及輸入框</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)聽(tīng)按鈕</b></p><p> //各個(gè)按鈕的監(jiān)聽(tīng),輸入數(shù)據(jù)和調(diào)用相應(yīng)的方法</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é)點(diǎn)</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、 獲取有序或無(wú)序鏈表</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為鏈表長(zhǎng)度</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 = "輸入鏈表長(zhǎng)度,第一個(gè)輸入框?yàn)殚L(zhǎng)度,第二個(gè)輸入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 = "長(zhǎng)度值有誤: (0 _" + 28 + ")";</p><p> codePart = 1;</p><p><b> } else {</b></p><p> note = "即將創(chuàng)建長(zhǎ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 = "選擇有序或者無(wú)序鏈表";</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ù)無(wú)序";</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)建完成;鏈表長(zhǎ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ù)組存儲(chǔ)</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> // 隨機(jī)數(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 = "無(wú)法插入: 數(shù)值在0 - " + 999;</p><p> codePart = 1;</p><p> } else if (totalLinks >= 28)
80、 {</p><p> note = "無(wú)法插入: 數(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 = "即將插入這個(gè)數(shù)據(jù) " + insKey;</p><p> codePart = 4;</p><p><b> } else {</b></p><p> note
82、= "即將尋找插入點(diǎn)";</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ù)插入,鏈表復(fù)位";</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 = "插入完成;鏈表長(zhǎng)度 = " + 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ù),分別填入兩個(gè)輸入框";</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 = "無(wú)法插入,位置超限";</p><p> codePart = 1;</p><p> } else if (totalLinks >= 28) {</p><p> note = "無(wú)法插入: 數(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;即將插入這個(gè)數(shù)據(jù) ,位置" + insPKey+"數(shù)據(jù)"+data;</p><p> codePart = 4;</p><p><b> } else {</b></p><p> note = "即將尋找插入點(diǎn)";</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ù)插入,鏈表復(fù)位";</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 = "插入完成; 鏈表長(zhǎng)度 = &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 = "已經(jīng)找到" + 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 = "已經(jīng)找到位置 " + 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 = "無(wú)法找到位置 " + 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 = "輸入要?jiǎng)h除的數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---鏈表的創(chuàng)建、插入、刪除、修改
- 雙向鏈表的建立插入刪除算法的實(shí)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 課程設(shè)計(jì)---雙鏈表的建立插入查找刪除算法的實(shí)現(xiàn)
- 單鏈表的創(chuàng)建、插入和刪除
- 建立刪除和插入動(dòng)態(tài)單向鏈表
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---雙向鏈表
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---以鄰接鏈表的方式確定一個(gè)無(wú)向網(wǎng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--鏈表
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-鏈表的簡(jiǎn)單操作
- 課程設(shè)計(jì)鏈表的交叉合并課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--雙向循環(huán)鏈表的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 循環(huán)單鏈表
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---城市鏈表的設(shè)計(jì)與實(shí)現(xiàn)
- 城市鏈表課程設(shè)計(jì)
- 城市鏈表課程設(shè)計(jì)
- 實(shí)現(xiàn)兩個(gè)鏈表的合并數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論