千家信息网

C语言如何实现通用数据结构中的通用椎栈

发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,今天就跟大家聊聊有关C语言如何实现通用数据结构中的通用椎栈,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。为大家分享了C语言实现通用数据结构之通
千家信息网最后更新 2024年11月15日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 #include #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语言如何实现通用数据结构中的通用椎栈有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

0