日志

KiKi学习了结构体和指针,他了解了结构体类型可以定义包含多个不同类型成员,而指针本质是内存地址,是引用数据的另外一种方式。现在他想将多个输入的数据通过结构体和指针的方式连接在一起,形成一个单向链表,即:每个结点是结构体类型,包括整型数据成员(data)和结构体指针类型成员(next),每个结点的指针部分指向下一个输入的结点。具体建立过程如下:先输入n个整数,按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。输出删除后的单链表信息。

#include <iostream>

using namespace std;

struct Node {

int data;

Node* next;

};

int main() {

int i, n, m;

cin >> n;

Node *head = new Node;

Node *p = new Node, *q;

cin >> p->data;

p->next = NULL;

head->next = p;

q = p;

for (i = 1; i < n; i++) {

Node* p = new Node;

p->next = NULL;

cin >> p->data;

q->next = p;

q = p;

}

p = head->next;

q = head;

cin >> m;

while (p != NULL) {

if (p->data == m) {

q->next = p->next;

p = q->next;

n--;

} else {

q = p;

p = p->next;

}

}

cout << n << endl;

p = head->next;

while (p != NULL) {

cout << p->data << " ";

p = p->next;

}

return 0;

}

全部评论

相关推荐

06-16 15:04
黑龙江大学 Java
零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务