自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#數(shù)據(jù)結(jié)構(gòu)之順序表操作

開(kāi)發(fā) 后端
很多朋友都在為C#數(shù)據(jù)結(jié)構(gòu)這個(gè)問(wèn)題煩惱,市場(chǎng)上沒(méi)有關(guān)于C#數(shù)據(jù)結(jié)構(gòu)的書(shū)籍和資料基本沒(méi)有,網(wǎng)上的資料也凌亂,在這里我將發(fā)布一些數(shù)據(jù)結(jié)構(gòu)的基本操作代碼,代碼采用C#實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的算法,希望我的文章及代碼可以幫助到大家學(xué)習(xí)使用C#來(lái)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的各種算法。

由于工作和別的原因,代碼寫(xiě)得很不規(guī)范,但我自己把下面的方法塊都測(cè)試了下沒(méi)發(fā)現(xiàn)錯(cuò)誤。

如果你在學(xué)習(xí)中發(fā)現(xiàn)我的方法有什么錯(cuò)誤請(qǐng)留下你寶貴的意見(jiàn)。

C#數(shù)據(jù)結(jié)構(gòu)線性表的定義:

n個(gè)數(shù)據(jù)元素的有限序列(線性表的數(shù)據(jù)元素在不同的環(huán)境下具體含義可以不同,但在同一線性表中的元素性質(zhì)必須相同)。

表長(zhǎng):線性表中數(shù)據(jù)元素的個(gè)數(shù)n(n>=0)。

空表:n=0時(shí)的線性表稱為空表。

位序:非空表中數(shù)據(jù)元素ai是此表的第i個(gè)元素,則稱i為ai在線性表中的位序。

線性表的結(jié)構(gòu)特點(diǎn):在數(shù)據(jù)元素的非空有限集中有如下規(guī)則

1.存在唯一的一個(gè)被稱作“第一個(gè)”的數(shù)據(jù)元素

2.存在唯一的一個(gè)被稱作“最后一個(gè)”的數(shù)據(jù)元素

3.除第一個(gè)外,集合中的每個(gè)數(shù)據(jù)元素均只有一個(gè)前驅(qū)

4.除最后一個(gè)外,集合中的每個(gè)數(shù)據(jù)元素均只有一個(gè)后繼

C#數(shù)據(jù)結(jié)構(gòu)線性表的運(yùn)算

1.取元素:求線性表中指定數(shù)據(jù)元素的位序。

2.插入:在線性表兩個(gè)確定的元素之間插入一個(gè)新的數(shù)據(jù)元素。

3.刪除:刪除表中某個(gè)數(shù)據(jù)元素。

4.求表長(zhǎng):求線性表中數(shù)據(jù)元素的個(gè)數(shù)。

5.查找:查找表中滿足某種條件的數(shù)據(jù)元素。

6.合并:把兩個(gè)線性表合并成一個(gè)線性表。

7.分拆:把一個(gè)線性表分拆成多個(gè)線性表。

8.排序:按一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)值的遞增或遞減次序重新排列表中數(shù)據(jù)元素。

在C#數(shù)據(jù)結(jié)構(gòu)線性表中最常見(jiàn)的是順序表,我寫(xiě)了一個(gè)關(guān)于順序表的基本操作的類,代碼我貼在下面:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. namespaceclassfile
  5. {
  6. classsxb
  7. {
  8. publicconstintdefaultsize=100;/*定義順序表的默認(rèn)元素?cái)?shù)目為1000*/
  9. publicintmaxsize;
  10. publicintsize;
  11. publicint[]list;
  12. //定義x,y的變量
  13. publicint_x;
  14. publicint_y;
  15. //定義x,y的屬性
  16. //publicintx
  17. //{
  18. //get{return_x;}
  19. //set{return_x=value;}
  20. //}
  21. //publicinty
  22. //{
  23. //get{return_y;}
  24. //set{return_y=value;}
  25. //}
  26. publicsxb()
  27. {
  28. initiatelist(defaultsize);
  29. }
  30. publicsxb(intsize)
  31. {
  32. initiatelist(size);
  33. }
  34. //初始化順序表
  35. publicvoidinitiatelist(intsz)
  36. {
  37. maxsize=sz;
  38. size=0;
  39. list=newint[sz];
  40. }
  41. //順序表插入算法,無(wú)返回值
  42. publicvoidinsertsxb(inti,intx)
  43. {
  44. if(size==maxsize)
  45. {
  46. thrownewException("順序表已滿,無(wú)法插入!");
  47. }
  48. if(i<0||i>size)
  49. {
  50. thrownewException("參數(shù)錯(cuò)誤!");
  51. }
  52. for(intj=size-1;j>=i-1;j--)
  53. {
  54. list[j+1]=list[j];//改成list[j]=list[j-1]
  55. }
  56. list[i-1]=x;
  57. //size是線行表的長(zhǎng)度大小數(shù)據(jù)插入長(zhǎng)度要+1
  58. size++;
  59. }
  60. //定義刪除順序表中x--y間元素的方法
  61. publicintDeleteXY(intx,inty)
  62. {
  63. for(inti=_x;i<_y;i++)
  64. {
  65. }
  66. return0;
  67. }
  68. //順序表刪除算法,返回刪除的元素
  69. publicintdelete(inti)
  70. {
  71. //size是線行表的長(zhǎng)度大小
  72. if(size==0)
  73. {
  74. thrownewException("順序表已為空無(wú)法刪除!");
  75. }
  76. if(i<0||i>size-1)
  77. {
  78. thrownewException("參數(shù)錯(cuò)誤!");
  79. }
  80. intit=list[i];
  81. for(intj=i;j<size-1;j++)
  82. {
  83. list[j]=list[j+1];
  84. }
  85. size--;
  86. returnit;
  87. }
  88. //獲取順序表的元素i,返加元素i的值
  89. publicintgetdata(inti)
  90. {
  91. if(i<0||i>=size)
  92. {
  93. thrownewException("參數(shù)錯(cuò)誤!");
  94. }
  95. returnlist[i];
  96. }
  97. //獲取順序表的長(zhǎng)度
  98. publicintsizelist()
  99. {
  100. returnsize;
  101. }
  102. //判斷順序表是否為空,為空返回true,否則返回false
  103. publicboolisempty()
  104. {
  105. returnsize==0;
  106. }
  107. //請(qǐng)問(wèn):該函數(shù)的功能???
  108. publicintmoredatadelete(sxbl,intx)
  109. {
  110. inti;
  111. inttag=0;
  112. for(i=0;i<l.size;i++)
  113. {
  114. if(x.Equals(l.getdata(i)))
  115. {
  116. l.delete(i);
  117. i--;
  118. tag=1;
  119. }
  120. }
  121. returntag;
  122. }
  123. }
  124. }

【編輯推薦】

  1. 定義C#接口學(xué)習(xí)經(jīng)驗(yàn)
  2. C# ListBox學(xué)習(xí)筆記
  3. 操作C# Dataset介紹
  4. C# ODBC訪問(wèn)MySQL數(shù)據(jù)庫(kù)
  5. 淺析C#和Java不同點(diǎn)
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2009-08-11 14:30:32

C#數(shù)據(jù)結(jié)構(gòu)與算法

2021-07-11 12:06:43

python數(shù)據(jù)結(jié)構(gòu)

2009-08-11 14:14:42

C#數(shù)據(jù)結(jié)構(gòu)與算法

2018-06-06 08:54:23

數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)

2009-08-11 14:51:11

C#數(shù)據(jù)結(jié)構(gòu)與算法

2009-08-11 14:43:42

C#數(shù)據(jù)結(jié)構(gòu)與算法

2009-08-11 14:36:17

C#數(shù)據(jù)結(jié)構(gòu)與算法線性表

2009-06-24 09:52:21

哈希表

2009-08-03 17:38:12

排序算法C#數(shù)據(jù)結(jié)構(gòu)

2009-08-19 15:47:09

C#操作Access

2009-08-19 13:34:55

C#操作注冊(cè)表

2009-08-19 13:30:58

C#操作注冊(cè)表

2009-08-19 13:25:53

C#操作注冊(cè)表

2012-02-02 10:21:05

單鏈表nexthead

2009-08-19 13:38:06

C#操作注冊(cè)表

2009-08-17 08:33:00

Visual C#數(shù)據(jù)

2011-04-11 17:09:37

稀疏矩陣矩陣C++

2009-08-19 16:40:26

C#操作Access數(shù)

2011-04-11 12:22:11

數(shù)據(jù)結(jié)構(gòu)C++

2011-04-11 12:48:36

隊(duì)列數(shù)據(jù)結(jié)構(gòu)C++
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)