2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論