C语言实现通用数据结构之通用椎栈
程序员文章站
2022-09-17 08:22:31
本文实例为大家分享了c语言实现通用数据结构之通用椎栈的具体代码,供大家参考,具体内容如下这是在通用链表的基础上实现的椎栈,关于链表的实现参见:c语言实现通用数据结构之通用链表 。这里所说的椎栈就是指的...
本文实例为大家分享了c语言实现通用数据结构之通用椎栈的具体代码,供大家参考,具体内容如下
这是在通用链表的基础上实现的椎栈,关于链表的实现参见:c语言实现通用数据结构之通用链表 。
这里所说的椎栈就是指的栈。
注意椎栈中只存储了指针,没有储存实际的数据。
头文件:
/************************* *** file mystack.h **************************/ #ifndef mystack_h_included #define mystack_h_included #include "mylist.h" typedef mylist mystack; //创建堆栈 mystack * createmystack(); //释放堆栈 void freemystack(mystack * stack); //加入 void mystackadd(mystack* const stack, void* const data); //删除 void* mystackremove(mystack * const stack); //取得堆栈头 void* mystackgettop(const mystack * const stack); #endif // mystack_h_included
源文件
/************************* *** file mystack.c **************************/ #include "mystack.h" //创建堆栈 mystack * createmystack() { return createmylist(); } //释放堆栈 void freemystack(mystack * stack) { freemylist(stack); } //加入 void mystackadd(mystack* const stack, void* const data) { mylistinsertdataatfirst(stack, data); } //删除 void* mystackremove(mystack * const stack) { return mylistremovedataatfirst(stack); } //取得堆栈头 void* mystackgettop(const mystack * const stack) { return mylistgetdataatfirst(stack); }
测试文件
/************************* *** file main.c *** test for mystack **************************/ #include <stdio.h> #include <stdlib.h> #include "mystack.h" typedef struct a { int i; char c; } a; int main() { const int s =10; //创建并初始化数据 a * data= malloc(sizeof(a)*s); for (int i=0; i< s; i++) { data[i].i=i; data[i].c=(char)('a'+ i); } //创建椎栈 mystack * stack= createmystack(); //插入数据 mystackadd(stack, &data[0]); mystackadd(stack, &data[2]); mystackadd(stack, &data[6]); //测试删除 while(mylistgetsize(stack)) { a * pp = mystackremove(stack); printf("%d[%c] ", pp->i, pp->c); } puts(""); //释放椎栈 freemystack(stack); //释放数据 free(data); return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 1-9 最长连续递增子序列 (20分)
下一篇: Winform 登录页面创建和设置