您的位置:首页 > 教育 > 培训 > 制作简易网站_广东省深圳市龙华区_启信聚客通网络营销策划_温州seo服务

制作简易网站_广东省深圳市龙华区_启信聚客通网络营销策划_温州seo服务

2025/2/24 9:24:42 来源:https://blog.csdn.net/weixin_68931360/article/details/143481963  浏览:    关键词:制作简易网站_广东省深圳市龙华区_启信聚客通网络营销策划_温州seo服务
制作简易网站_广东省深圳市龙华区_启信聚客通网络营销策划_温州seo服务

链栈的结构体定义

/*定义*/ 
typedef struct stacklnode{char data;struct stacklnode *next;
}stacklnode,*linkstack;

初始化 

/*初始化*/
void f1(linkstack *q){*q=NULL;
}

入栈 

/*入栈*/
void f2(linkstack *q,char e ){linkstack p=(linkstack)malloc(sizeof(stacklnode));p->data=e;p->next=*q;*q=p;
}

 求栈的长度

/*求链栈的长度*/
void f3(linkstack q){linkstack p=q->next;int l=1;while(p!=NULL){p=p->next;l++;}printf("链栈长度是%d",l);F();
}

输出栈的元素 

/*输出栈元素*/
void f4(linkstack q){printf("链栈是");while(q){printf("%c ",q->data);q=q->next;}F();
}

出栈 

/*出栈*/
void f5(linkstack *q){char e;linkstack p=(linkstack)malloc(sizeof(stacklnode));p=*q;e=p->data;p=p->next;*q=p;printf("%c出栈成功",e);F();
}

 代码实现

有链栈ABCD,出栈一次   两次

//链栈的相关操作实现
#include <stdio.h>
#include <stdlib.h>
void F() {printf("\n");printf("------------");printf("\n");
}
/*定义*/ 
typedef struct stacklnode{char data;struct stacklnode *next;
}stacklnode,*linkstack;
/*初始化*/
void f1(linkstack *q){*q=NULL;
}
/*入栈*/
void f2(linkstack *q,char e ){linkstack p=(linkstack)malloc(sizeof(stacklnode));p->data=e;p->next=*q;*q=p;
}
/*求链栈的长度*/
void f3(linkstack q){linkstack p=q->next;int l=1;while(p!=NULL){p=p->next;l++;}printf("链栈长度是%d",l);F();
} 
/*输出栈元素*/
void f4(linkstack q){printf("链栈是");while(q){printf("%c ",q->data);q=q->next;}F();
}
/*出栈*/
void f5(linkstack *q){char e;linkstack p=(linkstack)malloc(sizeof(stacklnode));p=*q;e=p->data;p=p->next;*q=p;printf("%c出栈成功",e);F();
}
int main(){linkstack s;f1(&s);f2(&s,'A');f2(&s,'B');f2(&s,'C');f2(&s,'D');f3(s); f4(s);f5(&s); printf("出栈后");f4(s);
}

出栈一次

出栈两次

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com