⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 堆栈的基本功能实现,链表方式实现
💻 C
字号:
#include "head.h"
void main(int argc,int *argv[])
{
	JD *phead = NULL;
	JD *pnew  = NULL;
	JD *ptop   = NULL;
	JD ptemp;
	JD *pointer = NULL;
	int i ;
	int flag = 1;
	int num;
	/***************充分考虑用指针函数调用**************/
	JD*   (*intput_stack)();
	JD*   (*output_stack)();
	void (*function)();	
	intput_stack = push;	
	output_stack = pop;
	function = menu;
	/****************************************************/



	phead = (JD*)malloc(sizeof(JD));
	phead->value = 0;
	phead->next  = NULL;
    do
	{
		(*function)();
		printf("请输入:");
	    scanf("%d",&num);
		printf("\n");
		switch(num)
		{
		case 0:
			{
				flag = 0;
				break;
			}
		case 1:
			{
				if(ptop != NULL)
				{
					ptemp.next = NULL;
					ptemp.value = 0;
				    ptop = (*output_stack)(phead,&ptemp,ptop);
					printf("栈输出值为:%d\n",ptemp.value);
				}
				else
				{
					printf("栈空\n");
				}
				break;

			}
		case 2:
			{
				printf("请输入你想压入栈中的值:");
				pnew = (JD*)malloc(sizeof(JD));
				scanf("%d",&pnew->value);
				printf("\n");
				ptop = (*intput_stack)(phead,pnew,ptop);
				break;

			}
		case 3:
			{
				
               printf("打印堆栈里面的数据:\n");
			   if(ptop !=NULL)
			   {

	               for(i = 1,pointer = ptop;pointer != NULL;pointer = pointer->next,i++)
				   {
		               printf("堆栈第%d层值:%d\n",i,pointer->value);

				   }
			   }
			   else
			   {
				   printf("栈空\n");
			   }
			   break;


			}
		default:
			{
				printf("请输入正确的功能选项:");
				printf("\n");
				break;
			}
		}

	}while(flag == 1);

	

	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -