数据结构-----线性表>顺序表的代码实现

#软件工程1604谷子毅
#2017-11-26 02:00

#武汉工程大学邮电与信息工程学院邮科院校区


提示:如果文中链接失效或有疑惑,请留言,我会在看到的第一时间帮助解决,谢谢支持!


/******************************************
 * @title:顺序表的代码实现
 * @author: Guzi_499
 * @date:2017-11-26
 * @version: V1.0
 ******************************************
 * @description:顺序表的代码实现
 *
 ******************************************/
typedef int Position;
typedef struct LNode *List;
struct LNode{
	ElementType Data[MAXSIZE];
	Position Last;
}; 
/*初始化*/
List MakeEmpty(){
	List L;
	
	L=(List)malloc(sizeof(struct LNode));
	L->Last=-1;
	
	return L;
}
/*查找*/
#define ERROR -1

Position Find(List L,ElementType X){
	Position i=0;
	while(i<=L->Last&&L->Data[i]!=X)
		i++;
	if(i>L->Last) return ERROR;//如果没找到,返回错误信息 
	else return i;//找到后返回的是存储位置 
}
/*插入*/
/*注意:在插入位置参数P上与课程有所不同,课程中
i是序列位序(从1开始),这里P是存储下标的位置(从0
开始),两者差1*/
bool Insert(List L,ElementType X,Position P){
	Poision i;
	
	if(L->Last==MAXSIZE-1){
		/*表空间已满,不能插入*/
		printf("表满");
		return false;
	}
	if(P<0||P>L->Last+1){/*检查插入未知的合法性*/
		printf("位置不合法");
		return false;
	}
	for(i=L->Last;i>=P;i--)
		L->Data[i+1]=L->Data[i];/*将位置P及以后的元素顺序向后移动*/ 
	L->Data[P]=X;/* 新元素插入 */
	L->Last++;/* Last仍指向最后元素 */
	return true;
} 
/*删除*/
/*注意:在删除位置参数P上与课程有所不同,课程
中i是序列位序(从1开始),这里P是存储下标位置
(从0开始),两者差1*/
bool Delete(List L,Position P){
	/*从L中删除指定位置P的元素*/
	Position i;
	
	if(P<0||P>L->Last){/* 检查空表及删除位置的合法性 */
		printf("位置%d不存在元素",P);
		return false;
	}
	for(i=P+1;i<=L->Last,i++)
		L->Data[i-1]=L->Data[i];/* 将位置P+1及以后的元素顺序向前移动 */
	L->Last--;/* Last仍指向最后元素 */
	return true;
}


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值