純c實現堆疊

2021-06-05 07:19:41 字數 1822 閱讀 3997

上頭檔案

#ifndef my_stack_h

#define my_stack_h

#ifdef __cplusplus

extern "c"mystack;

void initstack(mystack ** s, int size, freefunc freef); //初始化乙個大小為size的棧

void destroystack(mystack *s); //銷毀棧

void pushstack(mystack *s, void *data); //進棧

void popstack(mystack *s);     //出棧

int stack_isfull(mystack *s);  //棧是否飽了,c沒有bool

int stack_isempty(mystack *s);   //棧是否餓了 c沒有bool

int stack_lenght(mystack *s);    //棧的長度

void *stack_top(mystack *s);   //返回棧頂元素

int stack_finddatawithcompare(mystack *s, void *data, compapare f); //查詢指定飯的位置

void * stack_getdatawithindex(mystack *s, unsigned int index);  //通過序列返回飯

void stack_clean(mystack *s);

#ifdef __cplusplus

}#endif

#endif

原始檔#include "mystack.h"

#include "malloc.h"

#include "string.h"

void initstack(mystack **s,int size, freefunc freef)

memset(*s, 0, sizeof(mystack));

(*s)->size = size;

(*s)->freef = freef;

(*s)->top = -1; //這個-1是有原因的.為了好處理第乙個儲存時top++;

(*s)->data = (void **)malloc(size* sizeof(void*));

}void pushstack(mystack *s, void *data)

s->top++;

s->data[s->top] = data;

}void popstack(mystack *s)

s->freef(s->data[s->top]);

s->top--;

}void* stack_top(mystack *s)

int stack_finddatawithcompare(mystack *s, void *data, compapare f)

for(index = 0; indextop+1; index++)

}return -1;

}void * stack_getdatawithindex(mystack *s, unsigned int index)

return s->data[s->top] ;

}void stack_clean(mystack *s)

}int stack_isfull(mystack *s)

int stack_isempty(mystack *s)

int stack_lenght(mystack *s)

void destroystack(mystack *s)

}自己參照別人寫的,沒什麼改進.只是發出來鼓勵一下自己

純CSS如何實現移動堆疊卡片行

1.1css偽類 not 匹配不符合選擇器的元素 first child 選擇一組兄弟元素中的第乙個子元素 last child選擇一組兄弟元素中的最後乙個子元素 hover 滑鼠懸浮在元素上方 focus within 匹配元素自身或者其某個後代匹配 focus偽類 1.2css屬性 transf...

堆疊的c 實現

最近開始學習資料結構,說是學習,以前在大學裡面沒有好好學習,純粹是為了考試而學的,現在自己寫了個stack的c 實現,貼出來 template class cstack cpp檔案 include stdafx.h include bindtest.h include using namespace...

鍊錶堆疊C實現

typedef int elementtype typedef structlist list makeempty void insert elementtype x,int i list ptrl if i 1 i ptrl last 2 for j ptrl last j i 1 j 將a i ...