数据结构复习——线性表的顺序存储实现

线性表有两种方法实现,一种是顺序存储实现,另一种是链表存储实现。

顺序存储说白了就是用数组去存储。

简单的实现了增,删,查。

#include<bits/stdc++.h>
using namespace std;
#define MAXSIZE 105
typedef struct
{
    int data[MAXSIZE];
    int Len;
} List;
void printList(List *ptr)
{
    printf("表中:");
    if(ptr->Len==0)
    {
        printf("空!\n");
        return ;
    }
    for(int i=1; i<=ptr->Len; i++)
        cout<<ptr->data[i]<<" ";
    cout<<endl;
    return ;
}
void MakeEmpty(List *ptr) //清空
{
    for(int i=0; i<MAXSIZE; i++)
        ptr->data[i]=0;
    ptr->Len=0;
}
void ListInsert(List *ptr,int element,int pos) //增
{
    if(ptr->Len==MAXSIZE)
    {
        printf("表满!\n");
        return ;
    }
    if(pos<1||pos>ptr->Len+1)
    {
        printf("不在范围内!\n");
        return ;
    }
    if(pos<=ptr->Len+1)
    {
        for(int i=ptr->Len; i>=pos; i--)
            ptr->data[i+1]=ptr->data[i];
    }
    ptr->data[pos]=element;
    ptr->Len++;
    return ;
}
int FindListElement(List *ptr,int element)//查
{
    for(int i=1; i<=ptr->Len; i++)
        if(ptr->data[i]==element)
        {
            printf("元素%d在第%d个位置上\n",element,i);
            return i;
        }
    printf("不在表中!\n");
    return -1;
}
void DeleteElement(List *ptr,int pos)//删
{
    if(pos<1||pos>ptr->Len){
        printf("不再范围内!\n");
        return ;
    }
    for(int i=pos;i<ptr->Len;i++)
        ptr->data[i]=ptr->data[i+1];
    ptr->Len--;
    return ;
}


int main()
{
    List x;
    MakeEmpty(&x);

    for(int i=1; i<=10; i++)
        ListInsert(&x,i,i);

    printList(&x);

    int pos=FindListElement(&x,2);

    DeleteElement(&x,pos);

    printList(&x);

    for(int i=1;i<5;i++)
        ListInsert(&x,0,i);

    printList(&x);
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值