博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性表
阅读量:4664 次
发布时间:2019-06-09

本文共 1905 字,大约阅读时间需要 6 分钟。

类型名称: 线性表(list)

数据对象集:线性表是n(≥0)个元素构成的有序序列(a1,a2,...,an)

操作集:线性表 L €(属于) list,整数 i 表示位置,元素X € ElementType,

    线性表基本操作主要有:

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  typedef struct LNode *List; 2   struct LNode{ 3       ElementType Data[MAXSIZE]; 4       int Last; 5   }; 6   struct LNode L; 7   List PtrL; 8    9 10 11 //1.初始化(建立空的顺序表)12 List MakeEmpty()13 {14     List PtrL;15     PtrL = (List)malloc( sizeof(struct LNode));16     PtrL->Last = -1;17     return PtrL;18 } 19 20 //2.查找21 int Find(ElementType X, List PtrL)22 {23     int i=0;24     while(i <= PtrL->Last && PtrL->Data[i]!=X)25         i++;26         if(i > PtrL->Last)  return -1; /*如果没找到,返回-1*/27         else    return i;28 }29 30 //3.插入(第i(1<=i && i<=n+1)个位置上插入一个值为X的新元素)31 void Insert(ElementType X,int i,List PtrL)32 {33     int j;34     if( PtrL->Last == MAXSIZE-1){   /*表空间已满,不能插入*/35         printf(" 表满“ );36         return ;37     }38     if(i<1 || i>Ptr->Last+2){39         printf( " 位置不合法 " );40         return ;41     }42     for(j=PtrL->Last;j>=i-1;j--)43         PtrL->Data[j+1] = PtrL->Data[j];/*将a[i]~a[n]倒序向后移动*/44     PtrL->Data[i-1] = X;                /*Last仍指向最后元素*/                /*新元素插入*/45     PtrL->Last++;46     return;47 }48 49 50 //4.删除(删除表的第i(1<=i && i<=n)个位置上的元素)51 void Delete(int i,List PtrL)52 {53     int j;54     if(i < 1 || i > PtrL->Last){    /*检查空表及删除位置的合法性*/55         printf( "不存在第%d个元素",i);56         return ;57     }58     for(j=i;j<=PtrL->Last;j++)59         PtrL->Data[j-1] = PtrL->Data[j];    /*将a[i+1]~a[n]顺序向前移动*/60     PtrL->Last--;                           /*Last仍指向最后元素*/61     return ;62 }63 64 65

 

转载于:https://www.cnblogs.com/King-boy/p/10502250.html

你可能感兴趣的文章
AS中jar包和aar包区别及导入导出
查看>>
Android系统备忘1
查看>>
tomcat配置
查看>>
C语言学习之路
查看>>
值-结果参数
查看>>
[Excel] C# ExcelHelper操作类 (转载)
查看>>
使用jsoup进行网页内容抓取
查看>>
深入理解JVM内幕:从基本结构到Java 7新特性
查看>>
[NodeJs]入门经典
查看>>
准确判断listview上下滚动
查看>>
codeforces666A
查看>>
比较真实的下雪效果
查看>>
MongoDB 3.2 从安装到使用。
查看>>
CFround#380 div2
查看>>
设计模式基础知识备忘
查看>>
中国国家气象局天气预报信息接口
查看>>
牛客寒假算法基础集训营2 处女座的砝码 (思维)
查看>>
Samba 3.5.10 发布
查看>>
ORACLE升级PSU&OJVM注意的问题及遇到问题解决思路
查看>>
框架篇:Spring+SpringMVC+hibernate整合开发
查看>>