顺序表与链式表的基本算法

本文详细探讨了顺序表和链式表的基本算法,包括顺序表的结构体定义、初始化、查找和删除操作;链式表的抽象数据类型、初始化、按值查找以及删除节点等关键操作。
摘要由CSDN通过智能技术生成

一、顺序表

1、顺序表的结构体定义

typedef struct
{
	int *data;  //存放顺序表元素的数组 
		int length; //存放顺序表的长度 
		int Maxsize;//顺序表最大长度
	 }Sqlist;		//顺序表类型的定义 

2.初始化顺序表

Sqlist initList()
{	
 	Sqlist L;
 	L.data = (int*)malloc(sizeof(int));//用malloc函数申请一片空间
 	L.length = 0; //把顺序表的当前长度设为0
 	return L;
 }

3.查找数据

int findElem(Sqlist L, int e )
{
	int i;
	for(i=0;i<L.length;i++)
	{
		if (e==L.data[i])
			return i;	//若找到,则返回下标 
	}
	return -1;			//没有找到,返回-1 
}

4.删除表L中下标为p的元素,成功返回1,否则返回0,并将被删除元素的值赋给e。

int deleteElem(Sqlist &L, int p, int &e)
{
	int i;
	if (p<0||p>L.length-1)
		return 0;
	e = L.data[p];
	for(i=p;i<L.length-1;++i)
	{
		L.data[i] = L.data[i+1];
	}
	--L.length;
	return 1;
 } 

 二、链式表

1.单链表抽象数据类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值