真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言進(jìn)棧函數(shù)代碼 c++入棧函數(shù)

c語言的簡(jiǎn)單的進(jìn)棧出棧

就用這堆函數(shù)就可以了,不懂再追問

創(chuàng)新互聯(lián)是一家專業(yè)提供修水企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站建設(shè)、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為修水眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

#include

string.h

#define

MaxSize

100

int

mystack[MaxSize];/*

第0個(gè)單元保存現(xiàn)在的長(zhǎng)度

*/

/*

初始化函數(shù)

*/

void

init_stack(int*

stack){

memset(stack,0,sizeof(stack));

}

/*

入棧函數(shù)

*/

void

push_back(int*

stack,int

num){

if(stack[0]MaxSize-1){

++stack[0];

stack[

stack[0]

]

=

num;

}

else{

printf("ERORR!\n");

}

}

/*

返回??臻g

*/

int

size(int*

stack){

return

stack[0];

}

/*

返回棧頂函數(shù)

*/

int

top(int*

stack){

if(stack[0]0){

return

stack[

stack[0]

];

}

else{

printf("ERORR!\n");

return

-1;

}

}

/*

出棧函數(shù)

*/

void

pop(int*

stack){

if(stack[0]0){

--stack[0];

}

else{

printf("ERORR!\n");

}

}

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(用c語言寫) 棧的基本操作

//順序棧

#includestdio.h

#includestdlib.h

#includemalloc.h

#define STACK_INIT_SIZE 100;

#define STACKINCREMENT 10;

typedef struct

{

int *base;

int *top;

int stacksize;

}SqStack;

typedef int ElemType;

int InitStack(SqStack S) //為棧S分配存儲(chǔ)空間,并置S為空棧

{

int size = STACK_INIT_SIZE;

S.base=(int *)malloc(size*sizeof(ElemType));

if(!S.base)

return 0;

S.top=S.base; //置棧S為空棧

S.stacksize=STACK_INIT_SIZE;

return 1;

}

int GetTop(SqStack S,int e) //若棧不空,則用e返回S的棧頂元素

{

if(S.top==S.base) return 0;

e=*(S.top-1);

return 1;

}

int Push(SqStack S, int e) /*進(jìn)棧函數(shù),將e插入棧S中,并使之成為棧頂元素*/

{ if(S.top-S.base=S.stacksize) /*棧滿,追加存儲(chǔ)空間*/

{

int stackinvrement = STACKINCREMENT;

S.base=(ElemType *) realloc(S.base,(S.stacksize+stackinvrement)*sizeof(ElemType));

if(!S.base)

return 0; /*存儲(chǔ)分配失敗*/

S.stacksize+=STACKINCREMENT;

}

*S.top++=e;

return 1;

}

int Pop(SqStack S,int e)/*出棧函數(shù),若棧S不空,則刪除S的棧頂元素,用e返回其值*/

{ if(S.top==S.base) return 0;

e=*--S.top;

return 1;

}

void OutputStack(SqStack S)

{int *q;

q=S.top-1;

for(int i=0;iS.top-S.base;i++)

{

printf("%3d ",*q);q--;}

}

void main()

{

int a,b,c ;

char m;

SqStack s;

InitStack(s);

printf("請(qǐng)輸入要進(jìn)棧的元素個(gè)數(shù)是:");

scanf("%d",a);

printf("\n請(qǐng)輸入要進(jìn)棧的%d個(gè)元素:",a);

for(b=0;ba;b++) {

scanf("%d",c);

Push(s,c); }

do { printf("\n");

printf("*********** 1.輸出棧的元素**********\n");

printf("*********** 2.取棧頂元素************\n");

printf("*********** 3.刪除棧頂元素**********\n");

printf("*********** 4.退出程序**********\n");

printf("\n請(qǐng)選擇一個(gè)字符:");

getchar();

scanf("%c",m);

switch(m) {

case '1': printf("\n輸出的棧為:");

OutputStack(s);

break;

case '2': GetTop(s,c);

printf("\n棧頂元素為:%d",c);

printf("\n輸出的棧為:");

OutputStack(s);

break;

case '3': Pop(s,c);

printf("\n刪除的棧頂元素:%d",c);

printf("\n輸出的棧為:");

OutputStack(s);

printf("\n");

break;

case '4':break;

default: printf("輸入的數(shù)字有錯(cuò),請(qǐng)重新選擇!\n"); break;

}

}while(m!='4');

}

//鏈棧

#includestdio.h

#includestdlib.h

typedef struct SNode

{

int data;

struct SNode *next;

}SNode,*LinkStack;

LinkStack top;

LinkStack PushStack(LinkStack top,int x) //入棧

{

LinkStack s;

s=(LinkStack)malloc(sizeof(SNode));

s-data=x;

s-next=top;

top=s;

return top;

}

LinkStack PopStack(LinkStack top) //退棧

{

LinkStack p;

if(top!=NULL)

{

p=top;

top=top-next;

free(p);

printf("退棧已完成\n");

return top;

}

else printf("棧是空的,無法退棧!\n"); return 0;

}

int GetStackTop(LinkStack top) //取棧頂元素

{

return top-data;

}

bool IsEmpty()//bool取值false和true,是0和1的區(qū)別,bool只有一個(gè)字節(jié),BOOL為int型,bool為布爾型

{

return top==NULL ? true:false;

}

void Print()

{

SNode *p;

p=top;

if(IsEmpty())

{

printf("The stack is empty!\n");

return;

}

while(p)

{

printf("%d ", p-data);

p=p-next;

}

printf("\n");

}

void main()

{

int x,a,b;

char m;

do { printf("\n");

printf("###############鏈棧的基本操作##################\n");

printf("××××××××1.置空?!痢痢痢痢痢痢痢痢痢羂n");

printf("××××××××2.進(jìn)棧×××××××××××\n");

printf("××××××××3.退?!痢痢痢痢痢痢痢痢痢痢羂n");

printf("××××××××4.取棧頂元素××××××××\n");

printf("××××××××5.退出程序×××××××××\n");

printf("##############################################\n");

printf("\n請(qǐng)選擇一個(gè)字符:");

scanf("%c",m);

switch(m){

case '1':

top=NULL;

printf("\n棧已置空!");

break;

case '2':

printf("\n請(qǐng)輸入要進(jìn)棧的元素個(gè)數(shù)是:");

scanf("%d",a);

printf("\n請(qǐng)輸入要進(jìn)棧的%d個(gè)元素:",a);

for(b=0;ba;b++) {

scanf("%d",x);

top=PushStack(top,x); }

printf("進(jìn)棧已完成!\n");

printf("\n輸出棧為:");

Print();

break;

case '3':

printf("\n操作之前的輸出棧為:");

Print();

top=PopStack(top);

printf("\n操作過后的輸出棧為:");

Print();

break;

case '4':

printf("\n輸出棧為:");

Print();

if(top!=NULL)

printf("\n棧頂元素是:%d\n",GetStackTop(top));

else

printf("\n棧是空的,沒有元素!");

break;

case '5':break;

default:

printf("\n輸入的字符不對(duì),請(qǐng)重新輸入!");

break;

}

getchar();

}while(m!='5');

}

C語言板 數(shù)據(jù)結(jié)構(gòu) 進(jìn)棧 函數(shù)到底怎么寫

看一個(gè)棧的簡(jiǎn)單實(shí)現(xiàn),所有代碼都寫在一個(gè)頭文件中,實(shí)際的話,最好把聲明和實(shí)現(xiàn)分開。

#ifndef STACK_H

#define STACK_H

class Stack

{

public:

Stack();

Stack(const Stack copy);

Stack operator= (const Stack copy);

~Stack();

int getHeight() const;

bool isEmpty();

bool push(const int e);

bool pop(int e);

bool top(int e) const;

private:

int count;

int element[MAX_SIZE];

};

Stack::Stack()

{

count = 0;

}

Stack::Stack(const Stack copy)

{

this-count = copy.count;

for(int i = 0; i copy.count; i++)

{

element[i] = copy.element[i];

}

}

Stack Stack::operator =(const Stack copy)

{

if(copy != this)

{

this-count = copy.count;

for (int i = 0; i copy.count; i++)

{

element[i] = copy.element[i];

}

}

return *this;

}

Stack::~Stack()

{

count = 0;

}

int Stack::getHeight() const

{

return count;

}

bool Stack::isEmpty()

{

return count == 0;

}

bool Stack::push(const int e)

{

if (getHeight() == MAX_SIZE)

{

return false;

}

element[count++] = e;

return true;

}

bool Stack::pop(int e)

{

if (isEmpty() )

{

return false;

}

e = element[count--];

return true;

}

bool Stack::top(int e) const

{

e = element[count - 1];

return true;

}

#endif

請(qǐng)用C語言編寫一個(gè)堆棧函數(shù)程序

//該程序簡(jiǎn)單并可正確運(yùn)行,希望kutpbpb的回答能對(duì)你有所幫助!

#includestdio.h

#define N 100

typedef struct

{

int value[N];

int base;

int top;

}Sta;

void print()

{

printf("\n菜單:");

printf("\n1.入棧:");

printf("\n2.出棧:");

printf("\n3.退出:");

}

void printS(Sta S)

{

printf("\n請(qǐng)輸出棧中元素:");

for(int i=S.top;i!=S.base;i--)

printf("%d ",S.value[i-1]);

}

void pushS(Sta S,int e)

{

if(S.top==N)

printf("\n棧滿");

else

S.value[S.top++]=e;

}

void popS(Sta S,int e)

{

if(S.top==S.base)

printf("\n棧空");

else

{

e=S.value[--S.top];

printf("\n請(qǐng)輸出出棧元素: %d",e);

}

}

void main()

{

Sta S;

int e,choose;

S.base=S.top=0;

do{

print();

printf("\n請(qǐng)輸入你的選項(xiàng):");

scanf("%d",choose);

switch(choose)

{

case 1:

printf("\n請(qǐng)輸入入棧元素:");

scanf("%d",e);

pushS(S,e);

printS(S);

break;

case 2:

popS(S,e);

printS(S);

break;

case 3:

default:

break ;

}

if(choose==3)

break;

}while(1);

}


名稱欄目:c語言進(jìn)棧函數(shù)代碼 c++入棧函數(shù)
網(wǎng)站URL:http://weahome.cn/article/hidehh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部