[C言語]白駿10828:スタック



潮流


スタックです.隠れても隠れても、何度も聞いたことがあります.abc順にスタック空間に入ると、現れるときはcbaです.復帰の時にいろいろ説明を聞きました.
今回は私たちがそのスタックを実現します.問題を見ると、全部で5つの命令語があります.私たちはそれを利用します.

コード#コード#

#include <stdio.h>
#include <string.h>
#define stack_size 10001

int high = -1;
int stack[stack_size];

void push(int x)
{
	high++;
	stack[high] = x;
}
int empty()
{
	if (high == -1)
		return 1;
	else
		return 0;
}
int pop()
{
	if (empty())
	{
		return -1;
	}
	else
	{
		return stack[high--];
	}
}
int top()
{
	if (empty())
		return -1;
	else
		return stack[high];
}
int main()
{

	int N = 0, push_data = 0;
	char command[5] = {0, };

	scanf("%d", &N);

	for (int i = 0; i < N; i++)
	{

		scanf("%s", command);

		if (!strcmp(command, "push"))
		{
			scanf("%d", &push_data);
			push(push_data);
		}
		else if (!strcmp(command, "pop"))
		{
			printf("%d\n", pop());
		}
		else if (!strcmp(command, "empty"))
		{
			printf("%d\n", empty());
		}
		else if (!strcmp(command, "size"))
		{
			printf("%d\n", high + 1);
		}
		else if (!strcmp(command, "top"))
		{
			printf("%d\n", top());
		}
	}

	return 0;
}
コードは本当に簡単です.
https://code-lab1.tistory.com/5ここで理論を学びました
https://mu7a7ion.tistory.com/25はここで応用を学んだ.
しかし、もう一度探してみると、接続リストで解く方法があるという.
もうすぐ隠れるので、接続リストで解く方法を身につけておけばよかったので、勉強することにしました.
まず金を注文してから修正する.

接続リスト