今天就跟大家聊聊有关C语言如何实现通用数据结构中的通用椎栈,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。为大家分享了C语言实现通用数据结构之通用椎栈的具体代码,具体内容如下这是在通用
今天就跟大家聊聊有关C语言如何实现通用数据结构中的通用椎栈,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
为大家分享了C语言实现通用数据结构之通用椎栈的具体代码,具体内容如下
这是在通用链表的基础上实现的椎栈,关于链表的实现参见:C语言实现通用数据结构之通用链表 。
这里所说的椎栈就是指的栈。
注意椎栈中只存储了指针,没有储存实际的数据。
头文件:
#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
源文件
#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);}
测试文件
#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;}
看完上述内容,你们对C语言如何实现通用数据结构中的通用椎栈有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网其他教程频道,感谢大家的支持。
--结束END--
本文标题: C语言如何实现通用数据结构中的通用椎栈
本文链接: https://www.lsjlt.com/news/300609.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0