(전환) 스 택 의 기본 작업 (배열, 링크)
2664 단어 데이터 구조
//(1)
#include
#include
/* */
struct Stack
{
int Array[10];//
int Top;//
};
/* */
bool stack_empty(Stack *Stack1)
{
if(Stack1->Top==0)
{
return true;
}
else
{
return false;
}
}
/* */
void push(Stack *Stack1,int x)
{
Stack1->Top=Stack1->Top+1;
Stack1->Array[Stack1->Top]=x;
}
/* */
int pop(Stack *Stack1)
{
if(stack_empty(Stack1))
{
printf("underflow");
}
else
{
Stack1->Top=Stack1->Top-1;
return Stack1->Array[Stack1->Top+1];
}
}
int main()
{
struct Stack *Stack1=(struct Stack *)malloc(sizeof(struct Stack));//
Stack1->Top=0;//
push(Stack1,3);// 3
push(Stack1,4);// 4
push(Stack1,1);// 1
push(Stack1,10);// 10
printf("%d ",pop(Stack1));// 10
printf("%d ",pop(Stack1));// 1
printf("%d ",pop(Stack1));// 4
system("pause");
}
//(2)
/* */
typedef struct {
SLink top; //
int length; //
}Stack;
void InitStack ( Stack &S )
{
// S
S.top = NULL; // " "
S.length = 0; // 0
} // InitStack
/* , ?
, , , , 。*/
void Push ( Stack &S, ElemType e )
{
// e
p = new LNode; //
if(!p) exit(1); //
p -> data = e;
p -> next = S.top; //
S.top = p; //
++S.length; // 1
} // Push
/* " " 。*/
bool Pop ( Stack &S, SElemType &e )
{
// , S , e ,
// TRUE; FALSE
if ( !S.top )
return FALSE;
else
{
e = S.top -> data; //
q = S.top;
S.top = S.top -> next; //
--S.length; // 1
delete q; //
return TRUE;
}
} // Pop
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.