64,637
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include<iostream>
#include <iostream.h>
class node
{
friend class slist;
private:
int data;
node *next;
node()
{
next=NULL;
}
node(int a)
{
data=a;
next=NULL;
}
};
class slist
{
node *head;
int size;
public:
slist(int a[],int i);
~slist();
node* index(int i);
bool charu(int i,int elem);
bool show();
};
slist::slist(int a[],int i)
{
node *p=NULL,*q=NULL;
int j;
head=new node();
head->data=a[0];
for(j=1;j<i;j++)
{
if(j==1)
{
p=new node();
p->data=a[j];
head->next=p;
}
else
{
p->next=new node();
p->next->data=a[j];
p=p->next;
}
}
size=i;
}
slist::~slist()
{
node *p,*q;
p=head;
q=head->next;
while(p!=NULL)
{
delete p;
p=q;
if(p->next==NULL)
break;
q=p->next;
}
}
node *slist::index(int i)
{
node *p;
int j=0;
if(i<1||i>size)
return NULL;
else
{
if(i==1)
return head;
if(i==2)
return head->next;
p=head->next;
j=2;
while(j<i)
{
p=p->next;
j++;
}
}
std::cout<<"you want element whose number is:"<<p->data<<std::endl;
return p;
}
bool slist::charu(int i,int elem)
{
node *p,*q;
if(i<1||i>size)
return false;
else
{
p=index(i);
q=p;
p=new node(elem);
p->next=q->next;
q->next=p;
}
return true;
}
bool slist::show()
{
node *p;
p=head;
while(p!=NULL)
{
cout<<p->data;
p=p->next;
}
cout<<endl;
return true;
}
//main敓悢
int main()
{
int n=9;
int k=5;
int shuzu[]={1,2,3,4,5,6,7,8,9};
slist geek(shuzu,n);
geek.show();
geek.index(4);
geek.show();
geek.charu(3,k);
geek.show();
return 0;
}