C语言-线性表(1)

线性表的特点:
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).

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

完。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值