Posted on 2010-07-27 08:40
Kevin_Zhang 閱讀(853)
評論(0) 編輯 收藏 引用 所屬分類:
數據結構
//線性表的順序表示法,實現插入,查找,刪除操作,采用數組存儲。
#include<stdio.h>
#include<stdlib.h>
int n; //the number of elements
void print(int a[])//輸出
{
for(int i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
int insert(int element,int pos,int a[])//插入
{ if(pos<0||pos>n)return 0;
else
{for(int i=n-1;i>=pos;i--)
a[i+1]=a[i];
a[pos]=element;
n++;
}
}
int del(int pos,int a[])//刪除
{
if(pos<0||pos>n)return 0;
else
{
for(int i=pos;i<n-1;i++)
a[i]=a[i+1];
n--;
}
return 1;
}
int search(int element,int a[])//查找,如果查到返回該元素的下標號,否則返回-1
{
for(int i=0;i<n;i++)
if(a[i]==element)return i;
printf("沒有此元素\n");
return -1;
}
//m待插入或者待刪除的元素的值
//pos待插入元素的位置
int main()
{ int m;int pos;
printf("請輸入元素個數:");
scanf("%d",&n);
int *a=(int *)malloc((n+1)*sizeof(int));
if(!a){printf("分配存儲失敗");return 0;}
printf("請依順序輸入整數序列:\n");
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
printf("請輸入待插入元素值和下標:");
scanf("%d%d",&m,&pos);
insert(m,pos,a);
print(a);
printf("輸入一個待查元素:");
scanf("%d",&m);
printf("%d\n",search(m,a));
printf("請輸入待刪除元素的下標:");
scanf("%d",&pos);
del(pos,a);
print(a);
free(a);
return 0;
}