順序表

計算機內部存儲一張線性表,最為方便的就是一組連續(xù)的內存單元來存儲整張線性表。這種順序存儲結構下的線性表就叫順序表

線性表的數據對象集合為{a1,a2,....an},每個元素的類型都一樣。其中除第一個元素a1外,每一個元素有且只有一個直接前驅元素,除了最后一個元素an外,每個元素有且只有一個直接后繼元素。數據元素之間的關系是一對一的關系。

<li>有一個唯一的表名來標識該順序表
<li>內存單元連續(xù)存儲,也就是說,一張順序表要占據一塊連續(xù)的內存空間。
<li>數據順序存放,元素之間有先后關系


向順序表中插入元素。
在長度為n的順序表中的第i個位置插入新的元素,是指在順序表第i-1和第i個數據之間插入一個新元素item
A(a1,a2,...,ai-1,ai,...an) -----A(a1,a2,...,ai-1,item,ai,...an)

刪除一個元素
A(a1,a2,...,ai-1,ai,ai+1,...an) -----A(a1,a2,...,ai-1,ai+1,...an)

<pre>
#include<stdio.h>
#define MaxSize 10
//插入順序表
void insertElem(int Sqlist[],int len,int i,int x)
{
int t;
if(
len==MaxSize || i<1 || i>len+1){
printf("This insert is illegal\n");
return;
}
for(t=
len-1;t>=i-1;t--){
// printf("%d-->%d\n",t,Sqlist[t]);
Sqlist[t+1] = Sqlist[t];
}
Sqlist[i-1] = x;
*len = len+1;
}
//刪除
void DeElem(int Sqlist[],int len,int i){
int j;
if(i<1 || i>
len+1){
printf("This Delete is illegal ");
return;
}
for(j=i;j<
len;j++){
printf("de-->%d---->%d\n",j,Sqlist[j]);
Sqlist[j-1] = Sqlist[j];
}
*len = *len-1;
}</pre>

<pre>
int main(void) {
int Sqlist[MaxSize],int len, int i;
for(i=0;i<6;i++){scanf("%d ",&Sqlist[i]);}
len = 6;
for(i=0;i<len;i++){printf("%d ",Sqlist[i]); }
printf("shengyu length is %d\n",MaxSize-len);
insertElem(Sqlist,&len,3,0);
for(i=0;i<len;i++){
printf("%d ",Sqlist[i]);
}
printf("shengyu length is %d\n",MaxSize-len);
DeElem(Sqlist,&len,5);
for(i=0;i<len;i++){
printf("%d ",Sqlist[i]);
}
printf("shengyu length is %d\n",MaxSize-len);
return 0;
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容