#include<iostream>
#include<stdlib.h>
using namespace std;
class Node{
public:
int data;
Node* next;
void ptrintNode(){
cout << data << endl;
}
};
class singleList{
public:
singleList();
~singleList();
bool Find(int i,int *x);
bool Insert(int i,int *x);
bool Delete(int i);
void Trverse();
private:
Node *first;//创建头指针
int n;
};
singleList::singleList(){
first = new Node;
first->data = 0;
first->next = NULL;
n = 0;
}
singleList::~singleList(){
Node *p;
while (first){
p = first->next;
delete first;
first = p;
}
}
bool singleList::Find(int i, int *x){
if (i<0||i>n-1) return false;
Node *p = first;
for (int j=0; j<i; j++){
p = p->next;
}
*x = p->data;
return true;
}
bool singleList::Insert(int i,int *x){
if (i>n || i < 0) return false;
Node *p = first;
Node *q=new Node ; q->data = *x;
for (int j = 0; j<i; j++){
p = p->next;
}
q ->next = p->next;
p->next = q;
n++;
return true;
}
bool singleList::Delete(int i){
if (n = 0)return false;
if (n<0 || n>n - 1)return false;
Node *p=first;Node *q=first;
for (int j = 0; j < i-1; j++){
p = p->next;
}
if (i == 0)first = first->next;
else{
q = p->next;
p->next = q->next;
}
n--;
return true;
}
void singleList::Trverse(){
Node *p = first->next;
while (p)
{
cout << p->data << endl;
p = p->next;
}
}
int main(){
singleList a;
int c = 3;
a.Insert(0, &c);
a.Trverse();
system("pause");
return 0;