不学网

 找回密码
 立即注册

只需一步,快速开始

手机号码,快捷登录

查看: 393|回复: 0

[c/c++] [C数据结构]顺序栈(复用顺序表)

[复制链接]
j2cat 发表于 2018-1-6 19:33:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 j2cat 于 2018-1-6 19:36 编辑

SeqStack.h
  1. #ifndef _SEQSTACK_H_
  2. #define _SEQSTACK_H_

  3. typedef void SeqStack;

  4. SeqStack* SeqStack_Create(int capacity);
  5. void SeqStack_Destroy(SeqStack* stack);
  6. void SeqStack_Clear(SeqStack* stack);
  7. int SeqStack_Push(SeqStack* stack, void* item); //入栈
  8. void* SeqStack_Pop(SeqStack* stack); //出栈
  9. void* SeqStack_Top(SeqStack* stack); //栈顶
  10. int SeqStack_Size(SeqStack* stack); //栈使用大小
  11. int SeqStack_capacity(SeqStack* stack); //栈容量


  12. #endif
复制代码
SeqStack.c
  1. #include "SeqStack.h"
  2. #include "seqlist.h"

  3. SeqStack* SeqStack_Create(int capacity) {
  4.         return seqlist_create(capacity);
  5. }
  6. void SeqStack_Destroy(SeqStack* stack) {
  7.         seqlist_destroy(stack);
  8. }
  9. void SeqStack_Clear(SeqStack* stack) {
  10.         seqlist_clear(stack);
  11. }

  12. int SeqStack_Push(SeqStack* stack, void* item) {
  13.         return seqlist_insert(stack, item, seqlist_length(stack));
  14. }
  15.        
  16. void* SeqStack_Pop(SeqStack* stack) {
  17.         return seqlistnode_delete(stack, seqlist_length(stack) - 1);
  18. }
  19. void* SeqStack_Top(SeqStack* stack) {
  20.         return seqlistnode_get(stack, seqlist_length(stack) - 1);
  21. }
  22. int SeqStack_Size(SeqStack* stack) {
  23.         return seqlist_length(stack);
  24. }
  25. int SeqStack_capacity(SeqStack* stack) {
  26.         return seqlist_capacity(stack);
  27. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|不学网

GMT+8, 2018-9-19 05:51

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表