云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 链式栈基本操作C语言实现学习代码

链式栈基本操作C语言实现学习代码

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 12:41:44

头文件

#define _CRT_SECURE_NO_WARNINGS #include #include #define datatype int struct stack1 {

int num;

datatype data;

struct stack1 *pnext; };

typedef struct stack1 stack;

stack *init(stack *phead);//初始化

stack *push(stack *phead, int num, datatype data);//压栈 stack *pop(stack *phead, stack *tnode);//出栈 stack *freeall(stack *phead);//清空 void printf1(stack *phead);//打印 源文件

#define _CRT_SECURE_NO_WARNINGS #include #include #include\

stack *init(stack *phead) {

return NULL; }

stack *push(stack *phead, int num, datatype data) {

stack *p = (stack *)malloc(sizeof(stack)); p->num = num; p->data = data; p->pnext = NULL; if (phead == NULL) {

phead = p; return phead; } else {

stack *q = phead;

while (q->pnext != NULL)

{

q = q->pnext; }

q->pnext = p; return phead; } }

void printf1(stack *phead) {

if (phead == NULL) {

return; } else {

printf(\本结点地址=%p,后一个结点地址=%p,结点编号=%d,结点数据=%d\\n\, phead, phead->pnext, phead->num, phead->data); printf1(phead->pnext);

//printf(\本结点地址=%p,后一个结点地址=%p,结点编号=%d,结点数据=%d\\n\ } }

stack *pop(stack *phead, stack *tnode) {

if (phead == NULL) {

return NULL; }

else if (phead->pnext == NULL) {

tnode->num = phead->num; tnode->data = phead->data; free(phead); phead = NULL; return phead; } else {

stack *p = phead;

stack *q = phead->pnext;

while (q->pnext!= NULL) {

p = q;

q = q->pnext; }

p->pnext = NULL; tnode->num = q->num; tnode->data = q->data; free(q);

return phead; } }

stack *freeall(stack *phead) {

if (phead == NULL) {

return NULL; } else {

stack *p = phead; stack *q=NULL; while (p!= NULL) {

q = p->pnext; free(p); p = q;

//q = q->pnext; }

return NULL; } }

测试代码

#define _CRT_SECURE_NO_WARNINGS #include #include #include\ void main() {

stack *pp=NULL; //init(pp);

}

//pp = push(pp, 1, 10); //pp = push(pp, 2, 11); //pp = push(pp, 3, 12); //pp = push(pp, 4, 13); //pp = push(pp, 5, 14); //printf(\入栈之后\\n\ //printf1(pp);

//printf(\出栈之后\\n\ ///*pp = freeall(pp); //printf1(pp);*/ //while (pp != NULL) //{

// stack *p = (stack *)malloc(sizeof(stack)); // pp = pop(pp, p); // printf1(pp);

// printf(\出栈的数据\\n%d,%d\\n\ //}

int num = 10, i = 0; while (num) {

i++;

pp = push(pp, i, num % 2); num = num / 2; }

printf1(pp); system(\);

搜索更多关于: 链式栈基本操作C语言实现学习代码 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

头文件 #define _CRT_SECURE_NO_WARNINGS #include #include #define datatype int struct stack1 { int num; datatype data; struct stack1 *pnext; }; typedef struct stack1 stack; stack *init(stack *phead);//初始化 stack *push(stack *phead, int num, datatype data);//压栈 stack *pop(stack *phead, stack *tnode);//出栈 stack *freeall(stack *phea

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com