顺序表:
#include <bits/stdc++.h>
using namespace std;
class seqlist{
int *list,maxsize,size;
public:
seqlist(){
maxsize=1000;
size=0;
list=new int[maxsize];
}
~seqlist(){
delete []list;
}
int listsize(){
return size;
}
int listinsert(int i,int item){
if(i<=0||i>size+1){
return 0;
}
int j;
for(j=size;j>i-1;j--){
list[j]=list[j-1];
}
list[j]=item;
size++;
return 1;
}
int listdel(int i){
if(i<=0||i>size){
return 0;
}
for(int j=i-1;j<size;j++){
list[j]=list[j+1];
}
size--;
return 1;
}
int get(int i){
if(i<=0||i>size){
return 0;
}
return list[i-1];
}
void display(){
cout<<size<<" ";
for(int i=0;i<size;i++){
cout<<list[i]<<" ";
}
cout<<endl;
}
};
int main(){
int n;
cin>>n;
seqlist m;
for(int i=1;i<=n;i++){
int x;
cin>>x;
m.listinsert(i,x);
}
m.display();
int a,b;
cin>>a>>b;
if(m.listinsert(a,b)){
m.display();
}else{
cout<<"error"<<endl;
}
cin>>a>>b;
if(m.listinsert(a,b)){
m.display();
}else{
cout<<"error"<<endl;
}
cin>>a;
if(m.listdel(a)){
m.display();
}else{
cout<<"error"<<endl;
}
cin>>a;
if(m.listdel(a)){
m.display();
}else{
cout<<"error"<<endl;
}
cin>>a;
if(m.get(a)){
cout<<m.get(a)<<endl;
}else{
cout<<"error"<<endl;
}
cin>>a;
if(m.get(a)){
cout<<m.get(a)<<endl;
}else{
cout<<"error"<<endl;
}
}
单链表:
#include <bits/stdc++.h>
using namespace std;
class node{
public:
int data;
node *next;
node(){
next=NULL;
}
};
class linklist{
public:
node *head;
int len;
linklist(){
len=0;
head=new node;
}
~linklist(){
node *p=head,*q;
while(p){
q=p;
p=p->next;
delete q;
}
len=0;
head=NULL;
}
int insert(int i,int item){
node *p=head,*q=new node;
if(i<=0||i>len+1){
cout<<"error"<<endl;
return 0;
}
i--;
while(i--){
p=p->next;
}
q->data=item;
q->next=p->next;
p->next=q;
len++;
return 1;
}
void display(){
node *p=head->next;
while(p){
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int del(int i){
if(i<=0||i>len){
cout<<"error"<<endl;
return 0;
}
node *p=head;
i--;
while(i--){
p=p->next;
}
node *q=p->next;
p->next=q->next;
len--;
return 1;
}
void find(int i){
if(i<=0||i>len){
cout<<"error"<<endl;
return;
}
node *p=head;
while(i--){
p=p->next;
}
cout<<p->data<<endl;
}
};
int main(){
int n;
cin>>n;
linklist l;
for(int i=1;i<=n;i++){
int x;
cin>>x;
l.insert(i,x);
}
l.display();
int a,b;
cin>>a>>b;
if(l.insert(a,b)){
l.display();
}
cin>>a>>b;
if(l.insert(a,b)){
l.display();
}
cin>>a;
if(l.del(a)){
l.display();
}
cin>>a;
if(l.del(a)){
l.display();
}
cin>>a;
l.find(a);
cin>>a;
l.find(a);
}
本文介绍了C++中顺序表和单链表的数据结构实现,包括创建、插入、删除和显示元素的方法。展示了如何使用这两个数据结构进行操作并处理边界条件。
3320

被折叠的 条评论
为什么被折叠?



