C C 經典演算法精華整理(3) 實現棧的資料結構

2021-07-04 08:51:32 字數 2015 閱讀 7065

實現棧的資料結構

#include 

#include 

#include 

#define n 50

struct stack

int top;//棧頂的下標

int data[n];//儲存棧的資料

//void *p[n];

void init(struct stack *p)//對於棧進行初始化

p->top = -1;//代表為空,下標0代表第乙個元素

memset(p->data, 0, sizeof(int)*n);//初始化乙個棧

void  clear(struct stack *p)

p->top = -1;//代表為空,下標0代表第乙個元素

memset(p->data, 0, sizeof(int)*n);//初始化乙個棧

int isempty(struct stack *p)//判定是否為空

if (p->top==-1)

return 1;//為空

else

return 0;//不為空

int isfull(struct stack *p)

if (p->top==n-1)

return 1;//棧滿了

else

return 0;//棧不滿

void push(struct stack *p,int key)

if (isfull(p)==1)

return;

else

p->top += 1;//下標前移

p->data[p->top] = key;//壓入資料

int  gettop(struct stack *p)

return p->data[p->top];//返回棧頂資料

void pop(struct stack *p)

if (isempty(p)==1)

return;

else

p->top -= 1;

#include 

#include 

#include 

#define n 50

struct stack

int top;//棧頂的下標

int data[n];//儲存棧的資料

//void *p[n];

void init(struct stack *p)//對於棧進行初始化

p->top = -1;//代表為空,下標0代表第乙個元素

memset(p->data, 0, sizeof(int)*n);//初始化乙個棧

void  clear(struct stack *p)

p->top = -1;//代表為空,下標0代表第乙個元素

memset(p->data, 0, sizeof(int)*n);//初始化乙個棧

int isempty(struct stack *p)//判定是否為空

if (p->top==-1)

return 1;//為空

else

return 0;//不為空

int isfull(struct stack *p)

if (p->top==n-1)

return 1;//棧滿了

else

return 0;//棧不滿

void push(struct stack *p,int key)

if (isfull(p)==1)

return;

else

p->top += 1;//下標前移

p->data[p->top] = key;//壓入資料

int  gettop(struct stack *p)

return p->data[p->top];//返回棧頂資料

void pop(struct stack *p)

if (isempty(p)==1)

return;

else

p->top -= 1; 

一些經典排序演算法的實現 C C 實現

include include include using namespace std void swap int a,int b 氣泡排序 void bubblesort int a,int n 快速排序 void quicksort int a,int low,int high if i hig...

C C 中的堆和棧整理

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放 程式結束時可能由os 注意它與資料結...

C C 中的經典排序演算法總結

在c c 中,有一些經典的排序演算法,例如 氣泡排序 雞尾酒排序或雙向氣泡排序 改進的氣泡排序 選擇排序 直接插入排序 歸併排序 快速排序 希爾排序和堆排序等等。下面對這些排序演算法進行一一解析並給出示例 以共享之。氣泡排序是最基本的排序演算法,之所以稱之為氣泡排序是因為在氣泡排序的過程中總是大數往...