向量的插入与删除

向量是由具有相同数据类型的数据元素组成的线性表。下面是用C++实现的向量的插入与删除,供参考。


#include<stdio.h>
#include<stdlib.h>

#define MaxSize 100        //const int MaxSize 100;

typedef int datatype;     //datatype的类型可根据具体情况而定 ; 
typedef struct{
        datatype v[MaxSize];   //动态数组说明为datatype *V; 
        int n;            //当前表长; 
}seqList;                //数组V[n]...V[MaxSize-1]作为备用数组; 
seqList L;
//int i,j;
datatype x;

int seq_Insert(seqList &L, int i, datatype x);
int seq_Delete(seqList &L, int i);

int main()
{
    L.n=20;
    for(int i=0;i<L.n;i++)
          L.v[i]=i+1;
    x=100;
    for(int i=0;i<L.n;i++)
            printf("%d ",L.v[i]);
    printf("\n");
    seq_Insert(L,10,77);
    
    for(int i=0;i<L.n;i++)
          printf("%d ",L.v[i]);
    printf("\n");
    
    seq_Delete(L,10);
    for(int i=0;i<L.n;i++)
          printf("%d ",L.v[i]);
    printf("\n");
    
    system("pause");
    return 0;
} 

int seq_Insert(seqList &L, int i, datatype x)
{
     int j;
     if(i<0||i>L.n)
          return 1;      //position error
     if(L.n>=MaxSize)
          return 1;       //overflow
     for(j=L.n-1;j>=i;j--)
          L.v[j+1]=L.v[j];  //后移; 
     L.v[i]=x;            //插入 ; 
     L.n++;               //修改表长; 
     return 0;
}

int seq_Delete(seqList &L, int i)
{
    int j;
    if(i<0||i>L.n)
           return 1;  //position error
    for(j=i;j<L.n-1;j++)
           L.v[j]=L.v[j+1];   //前移 ; 
    L.n--;                     //修改表长; 
    return 0;
} 


猜你喜欢

转载自blog.csdn.net/qq_30300695/article/details/80951406