欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

顺序表的基本操作

程序员文章站 2024-03-20 14:20:22
...
//顺序表
#include<stdio.h>
#define MAXLEN 100

typedef struct slist
{
	int num[MAXLEN];
	
	int listlen;//定义表的长度 
 } list;

void initlist(list *l);//初始化线性表 

int listlength(list *l);//求表的长度 

int getelement(list *l,int i,int *x);//按照序号求元素运算的实现 

int serachelement(list *l,int x);//查找元素 位置

int listinsert(list *l,int x,int i);//插入元素 

int deletelist(list *l,int i);//删除元素 
 
 
int main(void)
{
	
	return 0;
}

void initlist(list *l)//初始化线性表
{
	l->listlen = 0;
 } 
 
int listlength(list *l)
{
	return l->listlen ;
 } 
 
int getelement(list *l,int i,int *x)
{
	if(i < 1 ||  i > l->listlen )
	{
		
		return 0;
	}
	
	else
	{
		*x = l->num [i - 1];//注意序号与下标之间的和关系 
		
		return *x;
	}
	
} 

int serachelement(list *l,int x)//查找元素位置 
{
	int i;
	
	for(i = 0; i < l->listlen; i++)
	{
		if(l->num [i] == x)
		{
			return i + 1;
		}
	}
	
	return 0;
}

int listinsert(list *l,int x,int i)//插入元素
{
	int j;
	
	if(l->listlen == MAXLEN)
	{
		return 0;
	}
	
	else if(i < 1 || i > l->listlen + 1)
	{
		 return 0;
	}
	
	else
	{
		for(j = l->listlen -1; j >= i - 1; j--)//插入运算是从后往前移 
		{
			l->num [j + 1] = l->num [j];//l->num[i] = l->num[i - 1]  腾出位置 开始插入 
		}
		
		l->num [i - 1] = x;//插入 
		
		l->listlen ++;//修改表的长度 
		
		return 1;
	}
}

int deletelist(list *l,int i)//删除元素, 
{
	int j;
	
	if(l->listlen <= 0)
	{
		return 0;
	}
	
	else if(i < 1 || i > l->listlen)
	{
		return 1;
	}
	
	else
	{
		for(j = i; j < l->listlen ; j++)//删除运算 从带删除位置从后往前移 
		{
			l->num [j - 1] = l->num [j];
		}
		
		l->listlen --;//修改表的长度 
		
		return 1;
	}
}
 
相关标签: 数据结构