线性表的特点:
L = {a1,a2,a3,a4……an}
①线性表中的各个元素的数据类型相同,位序从1开始。当表长n=0时是空表。
②直接前驱,直接后继。
③有序表。
抽象数据类型:
抽象数据类型用于分析和设计。
因为内容太多,就上传了个照片:
ADT List
{
数据对象:(略)
数据关系:(略)
基本操作:1.初始化操作
2.结构销毁操作
3.引用型操作
4.加工型操作
}
存储方法:
①:逻辑次序和物理次序一样,则采用顺序表(与数组相似)。
②:逻辑次序与物理次序不一致,则为链式存储。
删除操作代码:
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int a[N+1] = {1,2,3,4,5,0};
int i,c;
scanf("%d",&i);
if(i > 5||i < 0) exit(0);
c = i;
for(i = c;i < N;i++)
{
a[i] = a[i+1];
}
for(i = 0;i < N;i++)
{
printf("%d ",a[i]);
}
system("pause");
return 0;
}
将一个数字按照从小到大的顺序插入到已经排好顺序的数列中:
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int a[N+1] = {1,2,3,4,5,0};
int b;
int i,c;
scanf("%d",&b);
for(i = 0;i < N;i++)
{
if(b < a[i])
{
c = i;
for(i = N-1;i >= c;i--)
{
a[i + 1] = a[ i ];
}
a[c] = b;
break;
}
if(b >= a[N-1])
{
a[N] = b;
break;
}
}
for(i = 0;i < N+1;i++)
{
printf("%d ",a[i]);
}
system("pause");
return 0;
}
第一个for循环里面的是精华。
插入和删除的效率分别是(n-i),(n-i-1).
如有错误,欢迎批评指正。
欢迎交流学习!
完。