C语言-线性表(1)

线性表的特点:
L = {a1,a2,a3,a4……an}
①线性表中的各个元素的数据类型相同,位序从1开始。当表长n=0时是空表。
②直接前驱,直接后继。
③有序表。

抽象数据类型:
抽象数据类型用于分析和设计。
因为内容太多,就上传了个照片:
C语言-线性表(1)_第1张图片

ADT List
{
    数据对象:(略)
    数据关系:(略)
    基本操作:1.初始化操作
              2.结构销毁操作
              3.引用型操作
              4.加工型操作
}

存储方法:
①:逻辑次序和物理次序一样,则采用顺序表(与数组相似)。
②:逻辑次序与物理次序不一致,则为链式存储。

删除操作代码:

#include 
#include 
#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 
#include 
#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).

如有错误,欢迎批评指正。
欢迎交流学习!

完。

你可能感兴趣的:(C语言打怪)