数据结构_顺序表

来源:互联网 发布:mac mysql 修改密码 编辑:程序博客网 时间:2024/05/17 04:49

#include<cstdlib>
#include<iomanip>
#include<iostream>
using namespace std;


const int maxSize=100;
typedef struct 
{
        int data[maxSize];
        int length;
}SqList;


void InitList(SqList &L);//单链表的初始化 
int  ListInsert(SqList &L,int p, int e);//插入元素 
int  ListDelete(SqList &L, int p, int &e);//删除元素 
void PrintList(SqList L);//打印单链表 
int main(void)
{
    const int N = 5;
    int a[]={1,3,5,7,9};
    SqList L;
    
    InitList(L);
    for(int i=0; i<N; ++i)
    {
     ListInsert(L,i+1,a[i]);
    }
      PrintList(L);
     for(int i=N; i>1; --i)
    {
     ListDelete(L,i,a[i]);
    }
    
    PrintList(L);
    
    system("pause");
    return 0;
}




void InitList(SqList &L)
{
     L.length = 0;
}




int  ListInsert(SqList &L,int p, int e)
{
     if(L.length==maxSize-1 || p<1 || p>L.length+1)
        return 0;
     for(int i = L.length; i>=p; --i)
     {
             L.data[i+1] = L.data[i];
     }
     L.data[p] = e;
      ++L.length;
     return 1;
}


int  ListDelete(SqList &L, int p, int &e)
{
     if(L.length==0 || p<1 || p>L.length)
       return 0;
     e = L.data[p];
     for(int i = p+1; i<=L.length; ++i )
     {
             L.data[i-1] = L.data[i];
     }
     --L.length;
     return 1;
}


void PrintList(SqList L) 
{
     for(int i = 1; i <= L.length; ++i)
     {
             cout<<setw(3)<<L.data[i];
     }
     cout<<endl;
}

0 0