顺序表

来源:互联网 发布:软件杯比什么 编辑:程序博客网 时间:2024/04/30 15:17
#include<cstdlib>#include<iostream>#include<malloc.h>#include<conio.h>#define LIST_INT_SIZE 100#define LISTINCREMENT  10using namespace std;class SqList{  private:          int *elem;  int length;  int listsize;public:SqList() { elem=(int*)malloc(LIST_INT_SIZE*sizeof(int));       if(elem)  cout<<"InitList_Sq.cpp Succss"<<endl;   else  exit(0);    length=0;  listsize=LIST_INT_SIZE; }int ListInsert_Sq(int i,int e);void ListDlete_Sq(int i);int LocateElem_Sq(int e);void ListModify_Sq(int i,int e);void ListSort_Sq();void output();void input();~SqList(){ int *q=&elem[length-1];  for(int *p=elem;p<=q;++p)  free(p);}};int SqList::ListInsert_Sq(int i,int e){  if(i<1||i>length+1) {  cout<<" insert unsucess"<<endl;    return 0; }if(length>=listsize){  int *newbase=(int *)realloc(elem,(LISTINCREMENT+listsize)*sizeof(int));   if(!newbase) return 0;   elem=newbase;   listsize+=LISTINCREMENT;}int *p=NULL,*q=NULL;q=&elem[i-1];for(p=&elem[length-1];p>=q;--p)*(p+1)=*p;  *q=e;  ++length;}void SqList::ListDlete_Sq(int i){  if(i<1||i>length)   {  cout<<"The element don't empty"<<endl;   exit(0);   }int *p=&elem[i-1];cout<<"dlete elememt:"; cout<<*p<<endl;int *q=&elem[length-1];for(p++;p<=q;++p)*(p-1)=*p;--length;}int SqList::LocateElem_Sq(int e){   int i=1;while(i<=length&&elem[i-1]!=e)i++;if(i>length) return 0;else i;}void SqList::ListModify_Sq(int i,int e){ if(i<1||i>length)   {  cout<<"The element don't empty"<<endl;     exit(0);   }elem[i-1]=e;getchar();}void SqList::ListSort_Sq(){ for(int i=1;i<length;++i)      {    int key=elem[i];           int j=i-1;     while(j>=0&&elem[j]>key)     {  elem[j+1]=elem[j];           j--; } elem[j+1]=key;     }}void SqList::output(){   int *q=elem+length-1;   for(int *p=elem;p<=q;++p)   cout<<*p<<" ";      cout<<endl;}void SqList::input(){ int n; cout<<"p;ease input the initlist length:";  cin>>n;  length=n;  cout<<"please input date:";   for(int i=0;i<length;++i)cin>>elem[i];}int main(){ SqList L;  L.input();  L.output();  L.ListSort_Sq();  L.output();  int i,e;  cout<<"please input insert position and date: ";  cin>>i>>e;  L.ListInsert_Sq(i,e);  L.ListSort_Sq();  L.output();  cout<<"please input the position of the delete element: ";  cin>>i;  L.ListDlete_Sq(i);  L.ListSort_Sq();  L.output();  cout<<"please input modify  position and date: ";  cin>>i>>e;  L.ListModify_Sq(i,e);  L.ListSort_Sq();  L.output();  return 0;}

原创粉丝点击