#include "stdio.h" #include "stdlib.h" #define MaxSize 100 typedef struct sqlist{ int data[MaxSize]; int length; }SqList; void CreateList(SqList *p,int data[],int n); int ListInsert(SqList *p,int i ,int e); void ShowList(SqList *p,int n); void main(){ SqList*L; int data[6]={34,178,2,88,76,10},n,j; //順序表初始化 L=(SqList *)malloc(sizeof(SqList)); if(!L) printf("記憶體分配失敗"); else L->length=0; CreateList(L,data,6); ShowList(L,6); // 插入元素 printf("請輸入插入值的位置和數值(逗號分隔):"); scanf("%d,%d",&j,&n); n=ListInsert(L,j,n); if(n==-1) printf("插入位置有問題!\n"); else ShowList(L,n); //洗掉元素 printf("請輸入洗掉的位置:"); scanf("%d",&j); n=ListDelete(L,j); if(n==-1) printf("洗掉失敗!\n"); else printf("洗掉的元素為:%d\n",n); ShowList(L,L->length); //釋放空間 free(L); } //創建 void CreateList(SqList *p,int data[],int n){ int i; for(i=0;i<n;i++) p->data[i]=data[i]; p->length=n; } //插入 int ListInsert(SqList *p,int i ,int e){ int j; if(i<1|| i>p->length+1) return -1; i--;//形象i是邏輯位序 for(j=p->length ; j>i ; j--) p->data[j]=p->data[j-1]; p->data[i]=e; p->length++; return p->length; } //顯示 void ShowList(SqList *p,int n){ int j; for(j=0;j<n;j++) printf("%d",p->data[j]); printf("\t順序表長度為:%d\n",p->length); } //洗掉 int ListDelete(SqList *L,int i){ int k;int x; if(L->length==0) { printf("此表為空表,無法洗掉!"); return -1; } else if(i<i || i>L->length) { printf("洗掉的位置有誤!"); return -1; } else{ x=L->data[i-1]; for(k=i;k<L->length;k++) L->data[k-1]=L->data[k]; L->length--; return x; } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/47139.html
標籤:C++
上一篇:單鏈表
