#include<iostream>
using namespace std;
int a;
typedef struct Node {
int data;//数据域
Node* next;//指针域
}Node;
typedef Node* List;//定义线性表
void tailinsert(List& h) {
//尾插法建立线性表
List tail;//建立一个尾指针
h = new Node;//给链表创建一个空的头
h->next = NULL;//h的下一个指向是空
tail = h;
int x;
while (cin >> x && x) {
List p = new Node;
p->data = x;
p->next = NULL;
tail->next = p;
tail = p;
}
}
void dele(List& h) {
//实现链表的删除功能
//删除数据为a的
List prev, p;//
prev = h;
p = h->next;
while (p) {
if (p->data == a) {
p = p->next;
prev->next = p;
}
else {
prev = prev->next;//prev后移
p = p->next;//p进行后移
}
}
}
void prin(List& h) {
for (List i = h->next; i != NULL; i = i->next) {
cout << i->data << " ";
}
}
int main() {
List h;//创建一个线性表
tailinsert(h);
cin >> a;
dele(h);
prin(h);
return 0;
}
测试运行: