欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用椎棧

 更新時(shí)間:2021年11月26日 10:56:04   作者:swwlqw  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用椎棧,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用椎棧的具體代碼,供大家參考,具體內(nèi)容如下

這是在通用鏈表的基礎(chǔ)上實(shí)現(xiàn)的椎棧,關(guān)于鏈表的實(shí)現(xiàn)參見:C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用鏈表 。

這里所說(shuō)的椎棧就是指的棧。

注意椎棧中只存儲(chǔ)了指針,沒(méi)有儲(chǔ)存實(shí)際的數(shù)據(jù)。

頭文件:

/*************************
*** File myStack.h
**************************/
#ifndef MYSTACK_H_INCLUDED
#define MYSTACK_H_INCLUDED
 
#include "myList.h"
typedef MyList MyStack;
 
//創(chuàng)建堆棧
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"
 
//創(chuàng)建堆棧
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);
}

測(cè)試文件

/*************************
*** 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;
 
    //創(chuàng)建并初始化數(shù)據(jù)
    A * data= malloc(sizeof(A)*S);
    for (int i=0; i< S; i++)
    {
        data[i].i=i;
        data[i].c=(char)('A'+ i);
    }
 
    //創(chuàng)建椎棧
    MyStack * stack= createMyStack();
 
    //插入數(shù)據(jù)
    myStackAdd(stack, &data[0]);
    myStackAdd(stack, &data[2]);
    myStackAdd(stack, &data[6]);
 
    //測(cè)試刪除
    while(myListGetSize(stack))
    {
        A * pp = myStackRemove(stack);
        printf("%d[%c] ", pp->i, pp->c);
    }
    puts("");
 
    //釋放椎棧
    freeMyStack(stack);
 
    //釋放數(shù)據(jù)
    free(data);
    return 0;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于C語(yǔ)言實(shí)現(xiàn)靜態(tài)通訊錄的示例代碼

    基于C語(yǔ)言實(shí)現(xiàn)靜態(tài)通訊錄的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的靜態(tài)通訊錄,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語(yǔ)言有一定幫助,需要的可以參考一下
    2022-07-07
  • 常用的C語(yǔ)言編程工具匯總

    常用的C語(yǔ)言編程工具匯總

    c語(yǔ)言編程軟件適于編寫系統(tǒng)軟件,是學(xué)習(xí)編程的同學(xué)們的必備軟件。c語(yǔ)言一種非常強(qiáng)大的計(jì)算機(jī)語(yǔ)言,應(yīng)用非常廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都會(huì)用到c語(yǔ)言。今天小編給大家匯總下C語(yǔ)言的編程工具
    2018-01-01
  • C/C++迭代器的失效問(wèn)題詳解

    C/C++迭代器的失效問(wèn)題詳解

    這篇文章主要為大家詳細(xì)介紹了C/C++迭代器的失效問(wèn)題,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C++實(shí)現(xiàn)LeetCode(51.N皇后問(wèn)題)

    C++實(shí)現(xiàn)LeetCode(51.N皇后問(wèn)題)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(51.N皇后問(wèn)題),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • c++ 解析yaml文件的步驟

    c++ 解析yaml文件的步驟

    這篇文章主要介紹了c++ 解析yaml文件的步驟,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-12-12
  • 下標(biāo)操作符重載模擬多維數(shù)組詳解

    下標(biāo)操作符重載模擬多維數(shù)組詳解

    雖然不能直接實(shí)現(xiàn)一對(duì)下標(biāo)操作符重載,但是我們可以間接模擬。思路是這樣的,先通過(guò)單下標(biāo)操作返回一個(gè)具有下標(biāo)操作能力的左值,對(duì)左值進(jìn)行下標(biāo)操作,兩個(gè)下標(biāo)操作表達(dá)式聯(lián)立就實(shí)現(xiàn)了雙下標(biāo)操作
    2013-09-09
  • C++中Covariant返回值類型詳解

    C++中Covariant返回值類型詳解

    這篇文章主要介紹了C++中Covariant返回值類型詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以可以參考一下
    2022-09-09
  • 利用Matlab制作一款刮刮樂(lè)抽獎(jiǎng)特效

    利用Matlab制作一款刮刮樂(lè)抽獎(jiǎng)特效

    七夕節(jié)還不知道送啥,教你用MATLAB制作一款刮刮樂(lè)抽獎(jiǎng)特效,讓她的手氣決定她的禮物。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-03-03
  • 淺談C++中的mutable和volatile關(guān)鍵字

    淺談C++中的mutable和volatile關(guān)鍵字

    下面小編就為大家?guī)?lái)一篇淺談C++中的mutable和volatile關(guān)鍵字。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • C++的拷貝構(gòu)造函數(shù)你了解嗎

    C++的拷貝構(gòu)造函數(shù)你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C++的拷貝構(gòu)造函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論