C71-单链表
原题链接:28705.NoteSC++2025-08-27 12:07:09
发布于:江苏
#include <bits/stdc++.h>
using namespace std;
struct node {
int data; //数据域 :存放数值
node *next; //指针域 :存放下一个结点
};
int main()
{
node *head, *r; //定义了一个头结点, 尾结点
head = new node; //new 分配空间给 头节点
head->data = 666;
head->next = NULL;
r = head; //头就是尾巴
node *p; //临时结点
//1.新建,添加新的结点
for (int i=1; i<=5; i++) {
p = new node;
p->data = i;
p->next = NULL;
//连接上尾节点(两步)
r->next = p;
r = p; //尾结点变成了p
}
// 666 1 2 3 4 5
p = head;
//2. 遍历链表:
while (p->next != NULL) {
cout << p->next->data <<' ';
p = p->next; //节点往后挪
}
cout << endl;
//3. 删除:
p = head->next; //移到第一个节点(非头结点)
p->next = p->next->next;
//遍历链表:
p = head;
while (p->next != NULL) {
cout << p->next->data <<' ';
p = p->next; //节点往后挪
}
cout << endl;
//4. 增加:
p = head->next;
node *s = new node;
s->data = 114524;
s->next = NULL;
s->next = p->next;
p->next = s;
//遍历链表:
p = head;
while (p->next != NULL) {
cout << p->next->data <<' ';
p = p->next; //节点往后挪
}
cout << endl;
return 0;
}
猴子选大王
#include <bits/stdc++.h>
using namespace std;
struct node {
char data;
node *nxt;
};
int main()
{
node *head, *r, *p;
head = new node;
head->nxt = NULL;
r = head;
for (char i='A'; i<='E'; i++) {
p = new node;
p->data = i;
p->nxt = NULL;
r->nxt = p;
r = p;
}
r->nxt = head->nxt; //首尾相连
p = head->nxt;
for(int i=1; i<=4; i++) {
for (int j=1; j<=2; j++) {
p = p->nxt;
}
cout << "被淘汰的猴子是:" << p->nxt->data << endl;
p->nxt = p->nxt->nxt; //删除
p = p->nxt;
}
cout << "猴子大王是 " << p->data ;
//输出
// p = head;
// while (p->nxt != NULL){
// cout << p->nxt->data <<' ';
// p = p->nxt;
// }
return 0;
}
猴子选大王作业
n只猴子:ABCDEFG...
报的数字1~n(不包含1 和 n), 自己输入。 n最大为26
输入:n表示猴子的数量, m 表示报的数字
输出:猴子淘汰的顺序, 以及最后的猴王
输入:5 4
输出:
被淘汰的猴子是:D
被淘汰的猴子是:C
被淘汰的猴子是:E
被淘汰的猴子是:B
猴子大王是 A
全部评论 1
太棒来
1周前 来自 江苏
0
有帮助,赞一个