#include<cstdlib>
#include<iostream>
#include<malloc.h>
#include<conio.h>
#define LIST_INT_SIZE 100
#define LISTINCREMENT 10
using 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;
}
顺序表
最新推荐文章于 2021-08-20 10:10:04 发布