上頭檔案
#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 ...