我用vs2010实现链栈的基本操作,最后我想打印出所有元素,为什么出来的是乱码啊
我用vs2010实现链栈的基本操作,最后我想打印出所有元素,为什么出来的是乱码啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 技术专家团-小桥流水 2022-03-17 14:11关注
你的代码错误很多,你的节点都是往链表前面插入的,如果不带头节点,初始化函数就没有任何意义了。
带头和不带头的代码都给你写了,如下:
带头节点的代码:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LinkStack { struct LinkStack* next; ElemType data; }LS; //初始化 LS* InitStack(LS* s) { s = (LS*)malloc(sizeof(LS)); s->next = 0; return s; } //打印所有元素 void my_printf(LS* s) { LS* p; if (s == 0) { printf("链表为空\n"); return; } p = s->next; while (p) { printf("%d ", p->data); p = p->next; } printf("\n"); } //入栈 void PushStack(LS* s, ElemType x) { LS* p = (LS*)malloc(sizeof(LS)); p->data = x; p->next = s->next; s->next = p; } //出栈 void PopStack(LS* s) { LS* p; if (s == 0 && s->next == 0) { printf("栈为空\n"); return ; } p = s->next; s->next = p->next; free(p); } int main() { LS* s=0; s = InitStack(s); PushStack(s, 2); PushStack(s, 4); PushStack(s, 3); my_printf(s); return 0; }
不带头的代码:
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct LinkStack { struct LinkStack* next; ElemType data; }LS; //打印所有元素 void my_printf(LS* s) { LS* p; if (s == 0) { printf("链表为空\n"); return; } p = s; while (p) { printf("%d ", p->data); p = p->next; } printf("\n"); } //入栈 LS* PushStack(LS* s, ElemType x) { LS* p = (LS*)malloc(sizeof(LS)); p->data = x; p->next = s; return p; } //出栈 LS* PopStack(LS* s) { LS* p; if (s == 0 ) { printf("栈为空\n"); return 0; } p = s->next; free(s); s = p; return s; } int main() { LS* s=0; //s = InitStack(s); s = PushStack(s, 2); s = PushStack(s, 4); s = PushStack(s, 3); my_printf(s); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?