美文网首页
线性表之数组存储代码

线性表之数组存储代码

作者: 飒风灬 | 来源:发表于2018-07-21 13:55 被阅读0次

    //数组的线性表

    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;
    }

    相关文章

      网友评论

          本文标题:线性表之数组存储代码

          本文链接:https://www.haomeiwen.com/subject/yujhmftx.html