#include <iostream>
#include<queue>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
class Node
{
public:
int x;
int site;
Node* next;
Node(int y) {
this->x = y;
this->next = NULL;
}
};
class List {
public:
Node* phead;
int count;
List() {
Node* phead = NULL;
this->count = 0;
}
void add(int x) {
Node* tmp = new Node(x);
tmp->site = this->count++;
if (this->phead == NULL) {
this->phead = tmp;
}
else {
Node* t = this->phead;
while(t->next!=NULL) {
t = t->next;
}
t->next = tmp;
}
}
void show() {
Node* tmp = this->phead;
while (tmp) {
cout << tmp->x << " ";
tmp = tmp->next;
}
cout << endl;
}
void remove(int y) {
if (this->phead->x == y) {
this->phead = this->phead->next;
this->count--;
remove(y);
}
else {
Node* tmp = this->phead->next;
Node* pre = this->phead;
while (tmp) {
if (tmp->x == y) {
pre->next = tmp->next;
this->count--;
}
else
{
pre = tmp;
}
tmp = tmp->next;
}
}
}
void modify(int s, int y) {
if (s > this->count) {
cout << "越界" << endl;
}
else
{
Node* tmp = this->phead;
for (int i = 0; i < s; i++) {
tmp = tmp->next;
}
tmp->x = y;
}
}
};
int main()
{
List l;
l.add(2);
l.add(2);
l.add(2);
l.add(1);
l.add(2);
l.add(2);
l.add(2);
l.add(3);
l.add(4);
l.add(2);
l.add(3);
l.show();
l.remove(2);
l.show();
l.modify(10, 10);
l.show();
return 0;
}
单链表的增加修改删除
最新推荐文章于 2023-06-27 12:22:18 发布