码迷,mamicode.com
首页 > 其他好文 > 详细

线性结构

时间:2020-07-11 11:19:42      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:typedef   int   node   lis   线性结构   描述   一个   增删改查   oid   

线性表

由同类型数据元素构成有序序列的线性结构

  • 表中元素个数称为线性表的长度
  • 线性表没有元素时,称为空表
  • 表起始位置称表头,表结束位置称表尾

线性表的抽象数据类型描述

  • 线性表是n个元素构成的有序序列

性表基本操作

  • List MakeEmpty() 初始化一个空线性表L
List MakeEmpty(){
      List PtrL;
      PtrL=(List)malloc(sizeof(struct LNode));
      PtrL->Last=-1;
      return PtrL;
}
  • ElemType_FindKth(int K,List L) 根据位序K,返回相应元素
  • int Find(ElementType X,List L) 在线性表L中查找X的第一次出现位置
int Find(ElementType X,List PtrL){
      int i=0;
      while(i<=PtrL->Last && PtrL->Data[i]=X)
            i++;
      if(i>PtrL->Last) return -1  //如果没有找到 返回-1
      else return i;              //找到后返回存储位置
}
  • void insert(ElementType X,int i,List L) 在位序前插入一个新元素X
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->Last;j>=i-1;j)
            PtrL->Data[j+1]=PtrL->Data[j]; //将a[i]-a[n]倒序向后移动
      PtrL->Data[i-1]=X;                   //新元素插入
      PtrL->Last++;                        //Last仍指向最后的元素
      return;
  • void Delete(int i,List L) 删除指定位序i的元素
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];
      PtrL->Last--;
      return;
  • int Length(List L) 返回线性表L的长度n

增删改查

线性表的顺序存储结构

  1. 利用数组的连续存储空间顺序存放线性表的各元素
typedef struct LNode*list;
struct LNode{
      ElementType Data[MaxSize];
      int Last;
};
struct LNode L;
List PtrL;

线性结构

标签:typedef   int   node   lis   线性结构   描述   一个   增删改查   oid   

原文地址:https://www.cnblogs.com/Alex3O/p/13282816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!