数据结构(C语言实现)--线性表

笔记积累----

#include <stdio.h>
#define maxlen 100
typedef int elemtype;
typedef struct
{
	elemtype data[maxlen];
	int len;
}sqList;
/* 查找1 元素->位置 [元素,表L]*/
int ListLocate(elemtype f,sqList *sql)
{
	for(int i=1;i<=sql->len;i++){
		if(sql->data[i]==f)return i;
	}
	return 0;
}
/* 查找2 位置->元素 [位置,表L]*/
elemtype ListRetrieve(elemtype f,sqList *sql)
{
	if(f<1)return 0;
	else return sql->data[f];
}
/* 添加*/
void ListInsert(int x,elemtype y,sqList *sql)
{
	if( x<1 || x>sql->len )printf("error...");
	else{
		for(int i=sql->len;i>=x;i--)
			sql->data[i+1]=sql->data[i];
		sql->data[x]=y;
		(sql->len)++;
	}
}
/* 删除*/
void ListDelete(int x,sqList *sql)
{
	if(sql->len<1 || x>sql->len || x<1)
		printf("error...");
	else{
		for(int i=x;i<sql->len;i++)
			sql->data[i]=sql->data[i+1];
		(sql->len)--;
	}
}
/* 打印*/
void printList(sqList *sql)
{
	for(int i=1;i<=sql->len;i++){
		printf("%3d",sql->data[i]);
	}
	printf("\n\n");
}
/*主函数*/
void main()
{
	//定义模拟表,长度为8,并输出
	sqList a={0,1,2,3,4,5,6,7,8};
	a.len=8;
	printf("输出原表:");
	for(int i=1;i<=a.len;i++)printf("%3d",a.data[i]);
	/*查询数据*/
	elemtype f1_Element=4 , f2_Element;
	int find1=ListLocate(f1_Element,&a) , find2=6;
	//调用查找函数1
	printf("\n\n查找元素'%d'的位置为:%d\n",f1_Element,find1);
	//调用查找函数2
	f2_Element=ListRetrieve(find2,&a);
	printf("\n查找位置'%d'的元素为:%d\n\n",find2,f2_Element);
	//测试打印数据函数 printList(&a);
	//调用添加数据函数
	elemtype add=10;
	printf("在 %d 的位置插入元素 %d >> ",3,add);
	ListInsert(3,add,&a);
	printList(&a);
	//调用删除数据函数
	printf("删除位置 %d 位置的元素 >> ",8);
	ListDelete(8,&a);
	printList(&a);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值