#include <stdbool.h>
#include <stdlib.h>
#include <stdio.h>
typedef int DataType_t;
typedef struct SqStack
{
DataType_t *Bottom;
unsigned int Size;
int Top;
} SqStack_t;
SqStack_t *SqStack_Create(unsigned int size)
{
SqStack_t *Manager = (SqStack_t *)calloc(1, sizeof(SqStack_t));
if (NULL == Manager)
{
perror("calloc memory for manager is failed!\n");
exit(-1);
}
Manager->Bottom = (DataType_t *)calloc(1, sizeof(DataType_t));
if (NULL == Manager->Bottom)
{
perror("calloc memory for Stack is failed!\n");
free(Manager);
exit(-1);
}
Manager->Size = size;
Manager->Top = -1;
return Manager;
}
bool SqStack_IsFull(SqStack_t *Manager)
{
if (Manager->Top + 1 == Manager->Size)
return true;
return false;
}
bool SqStack_Push(SqStack_t *Manager, DataType_t Data)
{
if (SqStack_IsFull(Manager))
{
printf("SqStack is full!\n");
return false;
}
Manager->Bottom[++Manager->Top] = Data;
return true;
}
bool SqStack_IsEmpty(SqStack_t *Manager)
{
if (Manager->Top == -1)
return true;
return false;
}
DataType_t SqStack_Pop(SqStack_t *Manager)
{
DataType_t temp = 0;
if (SqStack_IsEmpty(Manager))
{
printf("SqStack is empty!\n");
return;
}
temp = Manager->Bottom[Manager->Top--];
return temp;
}
void SqStack_Print(SqStack_t *Manager)
{
for (int i = 0; i <= Manager->Top; i++)
printf("Stack element[%d]=%d\n", i, Manager->Bottom[i]);
}
int main(void)
{
printf("Please input a non-negative decimal integer:");
unsigned int Decimal;
scanf("%d", &Decimal);
int count = 1;
SqStack_t *Manager = SqStack_Create(100);
SqStack_Push(Manager, Decimal % 16);
while (Decimal >= 16)
{
Decimal /= 16;
SqStack_Push(Manager, Decimal % 16);
count++;
}
printf("The hexdecimal is:");
for (int i = 0; i < count; i++)
printf("%X", SqStack_Pop(Manager));
printf("\n");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!