#include "stdafx.h"
#include<iostream>
using namespace std;
struct Node{
int data;
Node* next;
};
void init(Node*&L){
L = NULL;
}
void Create(Node*&L, int value)
{
if (L == NULL)
{
Node*p = new Node;
p->data = value;
p->next = NULL;
L = p;
}
else
{
Node*cur=L, *pre=NULL;
while (cur)
{
pre = cur;
cur = cur->next;
}
Node*p = new Node;
p->data = value;
p->next = NULL;
pre->next = p;
}
}
void Print(Node*L)
{
while (L)
{
cout << L->data << " ";
L = L->next;
}
}
void Reverse(Node*&L)
{
Node*p = L->next;
L->next = NULL;
while (p)
{
Node*q = p;
p = p->next;
q->next = L;
L=q;
}
}
int main()
{
Node*List;
init(List);
cout << "输入五个数:\n";
int temp;
for (int i = 1; i <= 5; i++)
{
cin >> temp;
Create(List, temp);
}
Print(List);
cout << endl;
Reverse(List);
Print(List);
cout << endl;
return 0;
}
<pre name="code" class="cpp">#include "stdafx.h"
#include<iostream>
using namespace std;
struct Node{
int data;
Node* next;
};
void init(Node*&L){
L = NULL;
}
void Create(Node*&L, int value)
{
if (L == NULL)
{
Node*p = new Node;
p->data = value;
p->next = NULL;
L = p;
}
else
{
Node*cur = L, *pre = NULL;
while (cur)
{
pre = cur;
cur = cur->next;
}
Node*p = new Node;
p->data = value;
p->next = NULL;
pre->next = p;
}
}
void Print(Node*L)
{
while (L)
{
cout << L->data << " ";
L = L->next;
}
}
void Delete(Node*&L)
{
Node*p = L;
while (p!=NULL)
{
Node*q = p->next;
while (q!=NULL)
{
if (q->data == p->data)
{
p->next = q->next;
delete q;
q = p->next;
}
else
{
q = q->next;
}
}
p = p->next;
}
}
int main()
{
Node*List;
init(List);
cout << "输入五个数:\n";
int temp;
for (int i = 1; i <= 5; i++)
{
cin >> temp;
Create(List, temp);
}
Print(List);
cout << endl;
Delete(List);
Print(List);
cout << endl;
return 0;
}