1. 程式人生 > >4月2日學習打卡

4月2日學習打卡

sel struct size cls 多個 tle == 總數 sele

今天沒有學習新的知識,做了一個c語言的靜態順序表附代碼:

  1 #include"stdio.h"
  2 #include"stdlib.h"
  3 #define MaxSize 50
  4 typedef int DataType;
  5 typedef struct data
  6 {
  7     DataType data[MaxSize];
  8     int length;
  9 }SeqList;
 10 //初始化線性表 
 11 void initList(SeqList &L)
 12 {
 13     int n;
14 printf("請輸出您需要在線性表中輸入多少個元素:"); 15 scanf("%d",&n); 16 for(int i = 0; i < n; i++) 17 { 18 printf("請輸入第%d個元素:",i+1); 19 scanf("%d",&L.data[i]); 20 } 21 L.length = n; 22 printf("初始化成功!"); 23 } 24 //得到線性表的長度 25 int getLength(SeqList &L)
26 { 27 return L.length; 28 } 29 //得到線性表中第i個元素 30 DataType getElem(SeqList &L , int i) 31 { 32 //判斷輸出的第i個元素符不符合常規 33 if(i<1 || i>L.length) 34 { 35 printf("輸入錯位,沒有第%d個元素\n",i); 36 return -1; 37 } 38 return L.data[i-1]; 39 } 40 //
查找線性表中的該元素,如果存在一個或多個與x相等的元素則返回第一個值為x的元素的邏輯序號 41 int Locate(SeqList &L , int x) 42 { 43 for(int i = 0; i<L.length ; i++) 44 { 45 if(L.data[i] == x) 46 { 47 return i+1; 48 } 49 } 50 //如果循環結束函數還沒有結束,那就證明該線性表中沒有x這個元素,所以返回-1 51 return -1; 52 } 53 //插入元素到線性表 54 void insElem(SeqList &L , int x , int i ) 55 { 56 //判斷輸出的第i個元素符不符合常規 57 if(i<1 || i>L.length) 58 { 59 printf("輸入錯位,沒有第%d個元素\n",i); 60 return ; 61 } 62 for(int j = L.length-1 ; j >= i-1 ; j--) 63 { 64 L.data[j+1] = L.data[j]; 65 } 66 L.data[i-1] = x ; 67 L.length++; 68 printf("插入成功!\n"); 69 } 70 //從線性表中刪除元素 71 void delElem(SeqList &L , int i) 72 { 73 //判斷輸出的第i個元素符不符合常規 74 if(i<1 || i>L.length) 75 { 76 printf("輸入錯位,沒有第%d個元素\n",i); 77 return ; 78 } 79 for(int j = i-1 ; j < L.length ; j++) 80 { 81 L.data[j] = L.data[j+1]; 82 } 83 L.length--; 84 printf("刪除成功!\n"); 85 } 86 //輸出線性表中的所有元素 87 void dispList(SeqList &L) 88 { 89 90 for(int i = 0; i < L.length; i++) 91 { 92 printf("第%d個元素為:%d\n",i+1,L.data[i]); 93 } 94 } 95 //顯示提示信息 96 void showPrompt() 97 { 98 printf("請輸入1-8\n"); 99 printf("1:初始化線性表\n"); 100 printf("2:得到線性表的元素總數\n"); 101 printf("3:得到線性表中的一個元素\n"); 102 printf("4:查找線性表中是否存在一個值,並返回第一個值的序號\n"); 103 printf("5:插入一個元素\n"); 104 printf("6:刪除一個元素\n"); 105 printf("7:輸出線性表中的所有元素\n"); 106 printf("8:退出\n"); 107 } 108 main() 109 { 110 SeqList L; 111 int i; 112 int x; 113 int n; 114 int t; 115 while(1) 116 { 117 showPrompt(); 118 scanf("%d",&n); 119 switch(n) 120 { 121 case 1: 122 initList(L); 123 break; 124 case 2: 125 printf("線性表的長度為:%d\n",getLength(L)); 126 break; 127 case 3: 128 printf("請輸入您需要得到第幾個元素:\n"); 129 scanf("%d",&i); 130 t = getElem(L , i); 131 if(t != -1) 132 { 133 printf("第%d個元素的值為%d\n",i,t); 134 } 135 else 136 { 137 printf("輸入錯誤!\n"); 138 } 139 break; 140 case 4: 141 printf("請輸入您需要查找的元素為:\n"); 142 scanf("%d",&x); 143 t = Locate(L , x); 144 if(t != -1) 145 { 146 printf("%d第一次出現在該順序表中的第%d個\n",x,t); 147 } 148 else 149 { 150 printf("該元素表中沒有該元素\n"); 151 } 152 break; 153 case 5: 154 printf("請輸入您需要插入的位置與元素值:\n"); 155 scanf("%d",&i); 156 scanf("%d",&x); 157 insElem(L , x , i); 158 break; 159 case 6: 160 printf("請輸入您需要刪除第幾個元素:\n"); 161 scanf("%d",&i); 162 delElem(L , i); 163 break; 164 case 7: 165 dispList(L); 166 break; 167 case 8: 168 printf("退出成功!"); 169 exit(0); 170 break; 171 default: 172 printf("輸入錯誤!\n"); 173 } 174 system("pause");//暫停 175 printf("\n"); 176 system("cls");//清屏 177 } 178 }

4月2日學習打卡