线性表的基本操作

一.线性表的基本操作
1.List MakeEmpty():初始化一个空线性表L;
2.ElementType FindKth(int K,List L):根据位序K,返回相应函数;
3.int Find(ElementType X,List L):在线性表L中查找X的第一次出现位置;
4.void insert(ElementType X,int i,List L):在位序i前插入一个 新元素X;
5.void Delete(int i,List L):删除指定位序i的元素;
6.int Length(List L):返回线性表L的长度n.

二.基本操作的实现
1.初始化(建立空的顺序表)

List MakeEmpty()
{    List Ptry;
     Ptry = (List)malloc(sizeof(struct LNode));
     Ptrl->List = -1;
     return Ptrl;
}

2.查找

int Find(ElementType X,List Ptrl)
{   int i = 0;
    while(i<=Ptrl->&&Ptrl->Data[i]!=X)
        i++;
    if(i>Ptrl->Last)
        return -1;/*如果没有找到,返回-1*/
     else return 1;/*找到后返回的是储存位置*/

3.插入操作实现

void Insert(ElementType X,int i,List Ptrl)
{    int j;
     if(Ptrl->Last == MAXSIZE-1){/*表空间已满,不能插入*/
     printf("表满");
     return;
}
     if(i<1||i>Ptrl->Last+2){/*检查插入位置的合法性*/
     printf("位置不合法");
     return;
}
     for(j=Ptrl->List;j>=i-1;j--)
         Ptrl->Data[j+1] = Ptrl->Data[j];/*将ai~an倒序向后移动*/
     Ptrl->Data[i-1] = X;/*新元素插入*/
     Ptrl->Last++;/*Last仍指向最向后元素*/
     return;

4.删除操作实现

void Delete(int i,List Ptrl)
{    int j;
     if(i<1||i>Ptrl->Last+1){/*检查空表及删除位置的合法性*/
     printf("不存在第%d个元素",i);
     return;
 }
     for(j = i;j<=Ptrl->Last;j++)
        Ptrl->Data[j-1] = Ptrl->Data[j];/*将ai+1~an顺序向前移动*/
     Ptrl->Last--;/*Last仍指向最后元素*/
     return;
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值