线性表之数组存储代码

//数组的线性表

include "stdio.h"

define MAXSIZE 100

define ElementType int

typedef struct {
ElementType Date[MAXSIZE];
int Last; //最后一个元素
}List;

List L, *Ptrl;

//顺序存储。

//初始化,创建新表
List *MakeEmpty(void)
{
List *Ptrl;
Ptrl = (List)malloc( sizeof(List) );
Ptrl -> Last = -1;
return Ptrl;
}

//查找
int Find(ElementType x, List *Ptrl)
{
int i;
while(i < Ptrl -> Last && Ptrl -> Date[i] != x)
{
i++;
}
if(i > Ptrl -> Last)
return -1;
else
return i;
}

//插入 ,在现性表 i 位置插入 x
void Insert(ElementType x, List *Ptrl, int i)
{
int j;
if(Ptrl -> Last == MAXSIZE -1) //空间已满
{
return;
}
if(Ptrl -> Last + 2 ||i<1)  //位置不对
{
return;
}
for(j = Ptrl -> Last; j >= i-1; j--)
{
Ptrl -> Date[j+1] = Ptrl -> Date[j];
}
Ptrl -> Date[i-1] = x;
Ptrl -> Last ++;
return ;
}
//删除 第i个元素
void Delete(List *Ptrl, int i)
{
int j;
if(i < 1 || i > Ptrl -> Last + 1) //位置合法性
{
return;
}
for(j = i; j <= Ptrl -> Last; j++)
{
Ptrl -> Date[j-1] = Ptrl -> Date[j];
}
Ptrl -> Last --;
return;
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,062评论 0 2
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,545评论 0 13
  • ~ は ~ です ~ は ~ ではありません~は~じゃありません ~ は ~ ですが はいそうで...
    8b59164a27b1阅读 192评论 0 0
  • 大年初二,这天显的并不是那么顺利。虽然今天周六但工作已经进入正常轨道。还有十天就要抵达目的地,下午老轨开了一个工作...
    大皖安利阅读 145评论 0 0
  • 读原文听导读听责善再次感受到阳明先生的耐心和慈悲,晓之以理,动之以情,恩施并重。 中午做饭的时候,才发现油烟机...
    若水向善阅读 193评论 0 0