m0_74062574 2023-04-02 17:33 采纳率: 76.5%

# 关于#链表#的问题，如何解决？

1.链表创建成功之后卡了，
3.创建链表给他输入值的时候，怎么样写就是按空格分隔数据，怎么样写可以是实现一行一个数据（按行分隔数据）

``````
#include <iostream>
using namespace std;
#define elementype int
#define Maxsize 20
//链式栈
elementype data;

//获取栈的元素个数
return s->data;
}
//遍历栈元素输出
int m = slength(s);
cout << "从栈顶向下数据依次为" << endl;
for (int i = 0; i < m; i++) {
cout << s->next->data << " ";
}

}

//链栈的初始化
l->next = nullptr;
l->data = 0; //将元素个数放在top上面指针的data 域里
return true;
}
//判断栈是否为空
if (l->next == nullptr) {
return true;

}
else return false;

}

//压栈
void spush(linksq& s, const elementype& e) {
t->data = e;
t->next = s->next;
s->next = t;
}

//弹栈
void spop(linksq& s, elementype& e) {
e = p->data;
s->next = p->next;
(s->data)--;
delete p;
}

//创建栈
cout << "请输入元素个数" << endl;
cin >> s->data;
elementype input;
cout << "请输入栈的元素" << endl;
for (int i = 0; i < s->data; i++) {
cin >> input;
spush(s, input);
return true;
}
/* for (int i = 0; i < s->data; i++) {
cin >> p->data;
p->next = s->next;
}*/
}
//清空栈
if (l->next == nullptr) {
cout << "链表为空" << endl;
return false;
}

while (p) {
p = t;
t = t->next;
delete p;
}
l->data = 0;
l->next = nullptr;
return 0;
}

//销毁栈
if (l == nullptr) {
cout << "链表不存在" << endl;

}
while (t) {
p = t;
t = t->next;
delete p;
}
return true;
}

int main()
{
//链栈
{
cout << "链式栈初始化成功" << endl;
if (creatsq(n)) {
cout << "链表创建成功！" << endl;

}
else cout << "链表初始化失败！" << endl;

}
sqnum(n);
elementype q;
cout << "请输入要入栈的元素" << endl;
cin >> q;
spush(n, q);
elementype f;
spop(n, f);
cout << "弹出元素为" << f<<endl;
int w;
cout << "清空栈则输入1，不清空则输入0" << endl;
cin >> w;
if (w) {
if (sclearnlink(n))cout << "清空成功" << endl;
else cout << "清空失败" << endl;

}

}

``````
• 写回答

#### 2条回答默认 最新

关注

整体有不少错误，修改如下：

``````
#include <iostream>
using namespace std;
#define elementype int
#define Maxsize 20
//链式栈
elementype data;

//获取栈的元素个数
return s->data;
}
//遍历栈元素输出
int m = slength(s);
cout << "从栈顶向下数据依次为" << endl;
for (int i = 0; i < m; i++) {
cout << p->data << " ";
p = p->next;
}

}

//链栈的初始化
l->next = nullptr;
l->data = 0; //将元素个数放在top上面指针的data 域里
return true;
}
//判断栈是否为空
if (l->next == nullptr) {
return true;

}
return false;

}

//压栈
void spush(linksq& s, const elementype& e) {
t->data = e;
t->next = s->next;
s->next = t;
s->data++;
}

//弹栈
void spop(linksq& s, elementype& e) {
if(p==NULL)
return;
e = p->data;
s->next = p->next;
(s->data)--;
delete p;
}

//创建栈
cout << "请输入元素个数" << endl;
int n;
cin>>n;
s->data = 0;
elementype input;
cout << "请输入栈的元素" << endl;
for (int i = 0; i < n; i++) {
cin >> input;
spush(s, input);
}
return true;
}
//清空栈
if (l->next == nullptr) {
cout << "链表为空" << endl;
return false;
}

while (t) {
p = t;
t = t->next;
delete p;
}
l->data = 0;
l->next = nullptr;
return true;
}

//销毁栈
if (l == nullptr) {
cout << "链表不存在" << endl;

}
while (t) {
p = t;
t = t->next;
delete p;
}
return true;
}

int main()
{
//链栈
{
cout << "链式栈初始化成功" << endl;
if (creatsq(n)) {
cout << "链表创建成功！" << endl;

}
else cout << "链表初始化失败！" << endl;

}
sqnum(n);
elementype q;
cout << "请输入要入栈的元素" << endl;
cin >> q;
spush(n, q);
elementype f;
spop(n, f);
cout << "弹出元素为" << f<<endl;
int w;
cout << "清空栈则输入1，不清空则输入0" << endl;
cin >> w;
if (w) {
if (sclearnlink(n))cout << "清空成功" << endl;
else cout << "清空失败" << endl;

}
system("pause");
}

``````

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论 编辑记录

• 系统已结题 4月10日
• 已采纳回答 4月2日
• 创建了问题 4月2日

#### 悬赏问题

• ¥15 stata合并季度数据和日度数据
• ¥15 c语言练习：统计词频
• ¥15 谁能提供rabbitmq，erlang，socat压缩包，记住版本要对应，发到邮箱2644980770@qq.com
• ¥15 谁能提供rabbitmq，erlang，socat压缩包，记住版本要对应
• ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面？
• ¥15 用QT，进行QGIS二次开发，如何在添加栅格图层时，将黑白的矢量图渲染成彩色
• ¥50 监控摄像头 乐橙和家亲版 保存sd卡的文件怎么打开？视频怎么播放？
• ¥15 Python的Py-QT扩展库开发GUI
• ¥60 提问一下周期性信信号的问题
• ¥15 jtag连接不上fpga怎么办