#include<iostream.h>
#define increment 10
class sqlist{
private:
int *elem;
int listsize;
int length;
public:
sqlist(int n);
~sqlist();
void sqlistn(int n);
void print();
void insertlist(int i,int e);
void deletelist(int i,int &e);
int locatex(int x);
void turn();
void mergelist(sqlist &la,sqlist &lb);
};
sqlist::sqlist(int n){
elem = new int[n];
listsize=n;
length=0;
}
sqlist::~sqlist(){
delete [] elem;
listsize=0;
length=0;
}
void sqlist::sqlistn(int n){
for(int i=0;i<n;i++)
cin>> elem[i];
length = n;
}
void sqlist::print(){
for(int i=0;i< length;i++)
cout<< elem[i]<<" ";
cout<<endl;
}
void sqlist::insertlist(int i,int e){
if(i<1 || i> length+1) return;
if( length>= listsize){
int *elem1=new int[listsize+increment];
for(int i=0;i<length;i++)
elem1[i]= elem[i];
elem = elem1;
listsize+=increment;
}
int *p=& elem[length-1],*q = & elem[i-1];
for(;p>=q;p--) *(p+1) = *p;
*q = e;
length++;
}
void sqlist::deletelist(int i,int &e){
if(i<1||i> length) return;
int *p = & elem[i-1],*q=& elem[length-1];
e = *p;
for(;p<=q;p++) *p = *(p+1);
length--;
}
void sqlist::turn(){
int *p= elem,*q=& elem[length-1];
int *temp=new int;
for( ;p<q;p++,q--){
*temp=*p;
*p=*q;
*q=*temp;
}
}
int sqlist::locatex(int x){
for(int i=0;i<length;i++)
if(x==elem[i]) return i;
return -1;
}
void sqlist::mergelist(sqlist &la,sqlist &lb){
int *pa = la.elem;
int *pb = lb.elem;
int *pc=elem;
int *pa_last=&la.elem[la.length-1];
int *pb_last=&lb.elem[lb.length-1];
while (pa<=pa_last && pb<=pb_last)
if(*pa<=*pb) *pc++ = *pa++;
else *pc++= *pb++;
while(pa<=pa_last)
*pc++ = *pa++;
while(pb<=pb_last)
*pc++ = *pb++;
length=la.length+lb.length;
}
void main(void){
int e;
sqlist l(20);
l.sqlistn(10);
l.print();
l.insertlist(5,100);
l.print();
l.deletelist(7,e);
l.print();
l.turn();
l.print();
sqlist la(10),lb(10),lc(20);
la.sqlistn(5);
lb.sqlistn(5);
la.print();
lb.print();
lc.mergelist(la,lb);
lc.print();
}
#include<iostream.h>
typedef struct lnode{
int data;
lnode *next;
}lnode,*linklist;
class list{
lnode *head;
public:
list();
~list();
void initlistn(int n);
void print();
void insertlist(int i,int e);
void deletelist(int i,int &e);
int searchx(int x);
};
list::list(){
head=new lnode;
head->next=NULL;
}
list::~list(){
lnode *p=head->next;
while(p){
delete head;
head=p;
p=p->next;
}
delete head;
}
void list::initlistn(int n){
lnode *s=head,*p;
for(int i=0;i<n;i++){
p=new lnode;
cin>>p->data;
p->next=NULL;
s->next=p;
s=p;
}
void list::print(){
lnode *p=head->next;
while(p){
cout<<p->data<<' ';
p=p->next;
}
cout<<endl;
}
int list::searchx(int x){
lnode *p=head->next;
while(p){
if(p->data==x)return 1;
p=p->next;
}
return 0;
}
void list::insertx(int x){
lnode *pr=head,*p=head->next;
while(p&&p->data<=x){pr=p;p=p->next;}
lnode *s=new lnode;
s->data=x;
s->next=p;
pr->next=s;
}
数据结构-完整链表&顺序表
猜你喜欢
转载自blog.csdn.net/qq_40916453/article/details/82962128
周排行