线性表建立、删除

来源:互联网 发布:积分墙源码 编辑:程序博客网 时间:2024/05/20 18:02

线性表建立、删除

#include <iostream>
#include <malloc.h>
using namespace std;
typedef int datatype;
#define maxsize 1000
typedef struct{
 datatype data[maxsize];
 int last;
}sequenlist;

int Insert(sequenlist *L,datatype x,int i)
{    int j;
    if((*L).last>=maxsize-1)
      {cout<<"顺序表已满,不能插入"<<endl;return 0;}
    else
      if((i<1) || (i>(*L).last+1))
      {cout<<"插入位置有误"<<endl;return 0;}
      else
      {  for(j=(*L).last;j>=i-1;j--)
         (*L).data[j+1]=(*L).data[j];
       (*L).data[i-1]=x;
       (*L).last=(*L).last+1;
       }
       return (1);
}
int DELETE(sequenlist  *L,int i)
{
    int j;
    if((i<1)||(i>(*L).last+1))
       {
        cout<<"删除位置有误"<<endl;
        return 0;
        }
   else
       {for (j=i;j<=(*L).last;j++)
            (*L).data[j-1]=(*L).data[j];
        (*L).last--;
       }
   return(1);
}

main()
{
 int i;
 sequenlist *L;
 L=(sequenlist *)malloc(sizeof(sequenlist));
 for(i=0;i<5;i++)
    Insert(L,5*i,i+1);
    cout<<"顺序表已建立,初始值是:"<<endl;
 for(i=0;i<5;i++)
  cout<<(*L).data[i]<<",";
cout<<"/n请输入删除位置:"<<endl;
cin>>i;
if(DELETE(L,i))
{cout<<"删除后"<<endl;
for(i=0;i<(*L).last;i++)
  cout<<(*L).data[i]<<",";
 }
}

原创粉丝点击