建立一个顺序表,在顺序表的第i个位置实现增加和删除该位置元素,用C语言实现

\u5199\u51fa\u987a\u5e8f\u8868\u5728\u6307\u5b9a\u4f4d\u7f6e\u5220\u9664\u4e00\u4e2a\u5143\u7d20\u7684\u7a0b\u5e8f\uff08C\u8bed\u8a00\uff09\u4f8b\u5982\uff1a2 3 4 5 6 \u4f4d\u7f6e\uff1a2\uff0c\u5220\u9664\u540e\u4e3a\uff1a2 4 5 6

\u6309\u4f60\u7684\u8981\u6c42\u5199\u4e86\u4e00\u4e2a\u5b8c\u6574\u7684\u7a0b\u5e8f\u3002\u4f60\u53ef\u4ee5\u6839\u636e\u9700\u8981\u81ea\u7531\u8c03\u7528\u81ea\u5b9a\u4e49\u7684shanchu\u51fd\u6570\u3002
\u7a0b\u5e8f\u8bd5\u8fd0\u884c\u6b63\u5e38\u3002
\u8bd5\u8fd0\u884c\u622a\u56fe\u5982\u4e0b\uff1a


\u5e0c\u671b\u80fd\u5e2e\u52a9\u5230\u4f60\uff01

#include"stdio.h"
int shanchu(int a[]){
int n,i=0;
while(a[i]!=0)
i++;
printf("\n\u8be5\u6570\u5217\u957f\u5ea6\u4e3a%d\u3002\n",i);
printf("\u8bf7\u8f93\u5165\u8981\u5220\u9664\u5143\u7d20\u7684\u4f4d\u7f6en\uff08n<=%d\uff09\uff1a\n",i);
while(1)
{
scanf("%d",&n);
if(n>=1&&n<=i)
break;
printf("\u8bf7\u8f93\u51650-%d\u4ee5\u5185\u7684\u6570\u5b57\uff1a\n",i);
}
for(n=n-1;n<=i;n++)
a[n]=a[n+1];
printf("\u65b0\u6570\u5217\u4e3a\uff1a\n");
for(i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
printf("\n");
return a[20];
}
void main(){
int a[20]={2,3,4,5,6};
int i;
printf("\u539f\u6570\u5217\u4e3a\uff1a\n");
for(i=0;a[i]!=0;i++)
printf("%d\t",a[i]);
shanchu(a);
}



SortedSeqList.java
public class SortedSeqList {

private int MAX_SIZE = 10;

private int[] ary = new int[MAX_SIZE];

private int length = 0;

public SortedSeqList(int[] array) {
if (array == null || array.length == 0) {
this.length = 0;
} else {
ary = array;
length = array.length;
}
}

public void clear() {
length = 0;
}

public boolean isEmpty() {
return length == 0;
}

public void delete(int index) throws Exception {
if (length == 0) {
throw new Exception("No elment to delete");
}

int newAry[] = new int[ary.length - 1];

for (int i = 0, j = 0; i < ary.length; i++) {
if (i == index) {
continue;
} else {
newAry[j++] = ary[i];
}
}

ary = newAry;
length--;
}

public int insert(int value) throws Exception {
if (length == MAX_SIZE) {
throw new Exception("List is full, can't insert more");
}

int[] newAry = new int[length + 1];

int i = 0, j = 0;
for (; i < ary.length; i++, j++) {
if (ary[i] >= value) {
newAry[j] = value;
break;
} else {
newAry[j] = ary[i];
}
}

while (i < ary.length) {
newAry[++j] = ary[i];
i++;
}

ary = newAry;
length++;

return value;

}

public void display() {
System.out.println("\nList now is: ");
for (int i = 0; i < ary.length; i++) {
System.out.print(ary[i] + "\t");
}
}

}

--------------------------SortedSeqList_ex.java
public class SortedSeqList_ex {

public static void main(String[] args) throws Exception {

int[] ary = {1, 2, 3, 5, 7};

SortedSeqList list = new SortedSeqList(ary);
list.display();
list.insert(4);
list.display();
list.delete(2);
list.display();
}

}
---------------testing result

List now is:
12357
List now is:
123457
List now is:
12457

i

  • 鍦ㄩ『搴忚〃鐨勭i涓厓绱犱綅缃箣鍓嶅垹闄涓涓鍏冪礌鐨勫瓙绋嬪簭
    绛旓細/*绾挎琛ㄧ殑杩愮敤锛1锛鍒涘缓椤哄簭琛锛2锛夎幏鍙绗琲涓厓绱狅紙3锛夋煡鎵惧厓绱爔(4)鍦ㄦ煇涓浣嶇疆鎻掑叆鏁版嵁锛5锛夊垹闄ゆ煇涓浣嶇疆鏁版嵁鍦ㄤ富鍑芥暟涓皟鐢ㄤ笂杩版搷浣溿*/#include#include#definemaxsize50typedefstruct{intdata[maxsize];intlast;}Sequenlist;Sequenlist*InitList()//鍒涘缓椤哄簭琛▄Sequenlist*L;L=(Sequenlist*)malloc...
  • 鍦ㄩ暱搴︿负n鐨椤哄簭琛ㄧ殑绗琲(1鈮鈮+1)涓綅缃笂鎻掑叆涓
    绛旓細鍏冪礌鐨勭Щ鍔ㄦ鏁颁负n-i+1锛岄堿銆備妇渚嬭鏄庯細濡1 2 3銆傚湪绗2涓綅缃彃鍏涓涓a锛屽垯鍙樻垚锛1 a 2 3锛2鍜3鍒嗗埆鍚庣Щ涓浣嶏紝鎵浠ユ诲叡绉诲姩3+1-2=2娆°椤哄簭琛ㄧ殑瀛樺偍鐗圭偣鍙纭畾浜嗚捣濮嬩綅缃紝琛ㄤ腑浠讳竴鍏冪礌鐨勫湴鍧閮介氳繃涓嬪垪鍏紡寰楀埌锛歀OC锛坅i锛=LOC锛坅1锛+锛坕-1锛*L 銆1鈮鈮 鍏朵腑锛孡鏄厓绱犲崰鐢...
  • 椤哄簭琛ㄧ殑鎻掑叆鍜屽垹闄ょ畻娉
    绛旓細1. 鍒ゆ柇鎻掑叆浣嶇疆i鏄惁鍚堟硶锛屽嵆鏄惁婊¤冻1 ≤ i ≤ n+1锛屽叾涓璶涓椤哄簭琛ㄧ殑褰撳墠闀垮害銆傝嫢涓嶅悎娉曪紝鍒欐姏鍑哄紓甯告垨杩斿洖閿欒鎻愮ず銆2. 灏嗙n涓厓绱犺嚦绗琲涓厓绱犱緷娆″悜鍚庣Щ鍔涓涓浣嶇疆锛屼互渚夸负鏂板厓绱犺吘鍑虹┖闂淬傛敞鎰忥紝杩欓噷鏄粠鍚庡悜鍓嶄緷娆$Щ鍔紝浠ラ伩鍏嶈鐩栧師鏈夋暟鎹3. 鍦ㄧi涓綅缃彃鍏ユ柊鍏冪礌e銆4. 椤哄簭...
  • 鍦ㄩ暱搴︿负n鐨椤哄簭琛ㄧ殑绗琲涓綅缃笂
    绛旓細鍦ㄩ暱搴︿负n鐨椤哄簭琛ㄧ殑绗琲涓綅缃笂鎻掑叆涓涓鍏冪礌锛1鈮鈮+1锛夊厓绱犵殑绉诲姩娆℃暟涓簄-i+1銆傚惊搴忚〃绠浠嬶細椤哄簭琛ㄦ槸鍦ㄨ绠楁満鍐呭瓨涓互鏁扮粍鐨勫舰寮忎繚瀛樼殑绾挎琛紝绾挎ц〃鐨勯『搴忓瓨鍌ㄦ槸鎸囩敤涓缁勫湴鍧杩炵画鐨勫瓨鍌ㄥ崟鍏冧緷娆″瓨鍌ㄧ嚎鎬ц〃涓殑鍚勪釜鍏冪礌銆佷娇寰楃嚎鎬ц〃涓湪閫昏緫缁撴瀯涓婄浉閭荤殑鏁版嵁鍏冪礌瀛樺偍鍦ㄧ浉閭荤殑鐗╃悊瀛樺偍鍗曞厓涓紝鍗...
  • 绗竴涓 寤虹珛涓涓『搴忚〃,瑕佹眰,杈撳叆鏁存暟寤虹珛,杈撳叆-1琛ㄧず缁撴潫 绗簩涓...
    绛旓細PALIST AListInput(PALIST P,int n) //寤虹珛椤哄簭琛 { int i = n;P->length = 0;P->elem = (int *)malloc(sizeof(int)*MAXSIZE);while(i != -1){ P->elem[P->length] = i;P->length++;scanf("%d",&i);} } void AListOutput(PALIST P) //杈撳嚭椤哄簭琛 { int i;for(i...
  • 鍦涓涓闀垮害涓簄鐨椤哄簭琛ㄤ腑绗琲涓厓绱犱箣鍓嶆彃鍏ヤ竴涓厓绱犳椂,闇鍚戝悗绉诲姩澶氬皯...
    绛旓細鍦涓涓闀垮害涓簄鐨椤哄簭琛ㄤ腑绗琲涓厓绱犱箣鍓嶆彃鍏ヤ竴涓厓绱犳椂锛岄渶鍚戝悗绉诲姩n锛峣锛1涓銆傚皢琛ㄤ腑鍏冪礌涓涓帴涓涓殑瀛樺叆涓缁勮繛缁殑瀛樺偍鍗曞厓涓紝杩欑瀛樺偍缁撴瀯鏄『搴忕粨鏋勩傞噰鐢ㄩ『搴忓瓨鍌ㄧ粨鏋勭殑绾挎ц〃绠绉颁负鈥 椤哄簭琛ㄢ濄傞『搴忚〃鐨勫瓨鍌ㄧ壒鐐规槸锛氬彧瑕佺‘瀹氫簡璧峰浣嶇疆锛岃〃涓换涓鍏冪礌鐨勫湴鍧閮介氳繃涓嬪垪鍏紡寰楀埌锛歀OC锛坅i锛=...
  • 鍦ㄩ『搴忚〃绗琲涓綅缃彃鍏ュ间负x鐨勭粨鐐 涓嬮潰绋嬪簭鍝噷鏈夐棶棰
    绛旓細sequence_list * insert(sequence_list *slt,datatype x,int i){ for (int k=maxsize;k>=i;k--){ slt->a[k]=slt->a[k-1];} slt->a[i-1]=x;slt->size++;return slt;} int main (void){ sequence_list *la;datatype x;int i;init(&la);la=append(la,x);display(*la)...
  • 鏁版嵁缁撴瀯(濉┖)鍦ㄩ『搴忚〃涓 i 涓綅缃彃鍏ユ柊鍏冪礌 x
    绛旓細L->n<0 || L->n>maxsize
  • 寤虹珛椤哄簭琛銆 鍦ㄩ『搴忚〃涓婂疄鐜版彃鍏ャ佸垹闄ゅ拰鏌ユ壘鎿嶄綔
    绛旓細Sequenlist * InitList () //鍒涘缓椤哄簭琛 { Sequenlist * L ;L= (Sequenlist *) malloc( sizeof(Sequenlist) );L->last =0;return(L);} Sequenlist * creat() //鍒涘缓涓涓鏈夊叿浣撳唴瀹圭殑椤哄簭琛 { Sequenlist * L; int i=1,n;L=InitList( );printf("璇锋彃鍏ユ暟鎹,浠0缁撴潫\n");sca...
  • 鏁版嵁缁撴瀯銆傘傚悜椤哄簭琛ㄤ腑绗琲涓厓绱犱箣鍚庢彃鍏涓涓鍊间负x鐨勫厓绱
    绛旓細int InsElem(SqList &L,ElemType x,int i){ int j; if(i<1||i>L.length+1) return 0; if(L.length==MaxSize) return 0; for(j=L.length-1;j>=i;j--) L.data[j+1]=L.data[j ]; L.data[i]=x; L.length++; return 1;} ...
  • 扩展阅读:两个表人名顺序不一样 ... 十六种时态表格图 ... 一个表按另一个表排序 ... 两个有序顺序表的合并 ... 如何让两个表顺序相同 ... 创建顺序表并输入数据 ... 一个格子拆分成三格 ... 斜线表头一分为三 ... 表格文字一行变二行 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网