线性表顺序存储结构代码记录

本文详细介绍了一种数据结构——线性表的顺序存储结构,并提供了C语言实现的代码示例。包括取数据、删除数据和插入数据等基本操作函数,展示了如何在顺序表中进行数据管理。

线性表顺序存储结构代码记录

//顺序表
#include<stdio.h>
//#include<time.h>
#define maxsize 100
typedef int Elemtype;

//定义结构体顺序表 
typedef struct{
	Elemtype date[maxsize];
	int length;
}Seqlist;


//操作函数_取数据 (按位置取) 
Elemtype GetSeqlist(Seqlist * L,int n) 
{
	if(L->length)//判断表不为空
		if(n<=L->length&&n>0)//判断操作位置是否合法 
			return L->date[n-1];  
	else return -1;		
} 


//操作函数_删除数据(按位置删除) 
int ElemDelete(Seqlist * L,int n)
{
	int i;
	if(L->length)//判断表不为空
		if(n<=L->length&&n>0)//判断操作位置是否合法 
		{  
			for(i=n-1;i<L->length;i++)
				L->date[i]=L->date[i+1];
	 			L->length--;
				 return 1;
	 	}
	else  return 0;			
 } 
 
 
//操作函数_插入数据(按位置插入) 
int ElemInsert(Seqlist * L,int n,Elemtype m)
{
	int i;
	if(!L->length)//表为空则跳出
	return 0; 
	if(n<=L->length+1&&n>0)//判断操作位置是否合法 
	{
		if(n<=L->length&&n>0)//在中间插入
			{
				for(i=L->length;i>=n;i--)
					L->date[i]=L->date[i-1];
				L->date[n-1]=m;
				L->length++;
				return 1;
			}
	
		else if(n==L->length+1);//在末尾插入 
			{
				L->date[n-1]=m;
				L->length++;
				return 1;
			}
	}
	else return 0;
}


void main()
{
		Seqlist L;
		int i,m;
		L.length=10;
		
	//产生测试数据 
		for(i=0;i<L.length;i++)
		L.date[i]=i;
//	rand()%(1000);
	
	//输出测试数据 
		for(i=0;i<L.length;i++)
			printf("%d	",L.date[i]);
		printf("\n");
		
	//测试取数据函数 
		m=GetSeqlist(&L,2);	
		printf("%d\n",m);
	
	//测试删除数据函数(第二个位置删除) 
		ElemDelete(&L,2);
		for(i=0;i<L.length;i++)
			printf("%d	",L.date[i]);
		printf("\n");
	
	//测试插入数据 (第二个位置插入77)
		if(ElemInsert(&L,2,77) )
		for(i=0;i<L.length;i++)
			printf("%d	",L.date[i]);
		printf("\n");
		


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值