线性表--顺序表

线性表的数组实现
#include<iostream>
const int max = 1000;
using namespace std;
typedef struct LNode *List;
struct LNode {
    int Data[max];
    int Last;
};

List MakeEmpty()
{
    List PtrL;
    PtrL = (List)malloc(sizeof(struct LNode));
    PtrL->Last = -1;
    return PtrL;
}
int Find(int X, List PrtL)
{
    int i = 0;
    while (i < PrtL->Last&&PrtL->Data[i] != X)
    {
        i++;
    }
    if (i > PrtL->Last)
        return -1;
    else
        return i;
}
void Insert(int X, int i, List PrtL)
{
    int j;
    if (PrtL->Last == max - 1)
    {
        cout << "表满" << endl;
        return;
    }
    if (i < 1 || i>PrtL->Last)
    {
        cout << "位置不合法" << endl;
        return;
    }
    for (j = PrtL->Last; j >=i-1; j--)
    {
        PrtL->Data[j + 1] = PrtL->Data[j];
    }
    PrtL->Data[i-1] = X;
    PrtL->Last++;
    return;
}
void Delete(int i,List PrtL)
{
    int j;
    if (i<1 || i>PrtL->Last+1)
    {
        cout << "不存在这个元素" << endl;
        return;
    }
    for (j = i; j <= PrtL->Last; j++)
    {
        PrtL->Data[j - 1] = PrtL->Data[j];
    }
    PrtL->Last--;
    return;

}

 

posted @ 2019-09-06 10:22  Tomorrow1126  阅读(154)  评论(0)    收藏  举报