数据结构-线性表的实现无动态分配版本

前言:由于很长一段时间没碰过代码了现如见重写学习一下代码实现一些简单的数据结构

#include<bits/stdc++.h>
using namespace std;
typedef struct
{
    int a[1000];//线性表存取的值
    int len;//线性表长度
}sqlist; //线性表的定义
//初始化线性表
int initsqlist(sqlist *l)
{
    l->len=0;
    //cout<<l->len<<endl;
    return 1;
}

//判断线性表是否为空 为空返回1非空返回0
int listempty(sqlist *l)
{
    if(l->len==0)return 1;
    return 0;
}
//将线性表制为空表
int clersqlist(sqlist *l)
{
    l->len=0;
    return 1;
}
//获取线性表长度
int listlength(sqlist *l)
{
    return l->len;
}
//取线性表中第i个位置的数值
int getelem(sqlist *l,int i,int *e)
{
    if(i<1||i>l->len)return 0;
    *e=l->a[i-1];
    return 1;
}
//寻找表中值为x的第i个位置
int localelem(sqlist* l,int e)
{
   for(int i=0;i<l->len;i++)
   {
       if(l->a[i]==e)
       return i+1;
   }
   return 0;
}
//再第i个位置插入元素
int listinsert(sqlist *l,int i,int e)
{

    int k;
    for(k=l->len-1;k>=i-1;k--)
        l->a[k+1]=l->a[k];
    l->len++;
    cout<<l->len<<endl;
    l->a[i-1]=e;
    return 1;
}
//删除第i个元素
int listdele(sqlist *l,int i)
{

    for(int k=i-1;k<l->len-1;k++)
        l->a[k]=l->a[k+1];
    l->len--;
    return 1;
}
//打印表中元素
int printlist(sqlist *l)
{
    for(int i=0;i<l->len;i++)
    {
        cout<<l->a[i]<<" ";
    }
    cout<<endl;
}

int main()
{
   sqlist L;
   initsqlist(&L);
   for(int i=0;i<5;i++)
   {
       listinsert(&L,1,i);
   }
   printlist(&L);
    return 0;
}

posted @ 2022-05-27 20:18  lynko小渣硕  阅读(24)  评论(0)    收藏  举报