• 链栈的建立


    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    using namespace std;
    typedef char StackElemType;
    
    typedef struct LinkStackNode
    {
    	StackElemType data;
    	struct LinkStackNode *next;
    }LinkStackNode, *LinkStack;
    
    LinkStack CreateLinkStack()
    {
    	LinkStack top = (LinkStack)malloc(sizeof(LinkStackNode));
    	top->next = NULL;
    	return top;
    }
    
    int Push(LinkStack top, StackElemType x)
    {
    	LinkStackNode *temp = (LinkStackNode *)malloc(sizeof(LinkStackNode));
    	if(temp == NULL)
    	{
    		return false;
    	}
    	temp->data = x;
    	temp->next = top->next;
    	top->next = temp;
    	return true;
    }
    
    int Pop(LinkStack top, StackElemType *x)
    {
    	LinkStackNode *temp;
    	temp = top->next;
    	if(temp == NULL)
    	{
    		return false;
    	}
    	top->next = temp->next;
    	*x = temp->data;
    	delete temp;
    	return true;
    }
    
    int scan()
    {
    	int n;
    	cout << "-----------------++++++++++++++++++-------------------" << endl;
    	cout << "                请选择所要进行的操作                  " << endl;
    	cout << "                   1.入栈   2.出栈                    " << endl;
    	cout << "-----------------++++++++++++++++++-------------------" << endl;
    	cin >> n;
    	getchar();
    	return n;
    }
    
    int main()
    {
    	int quit = 0;
    	LinkStack top = CreateLinkStack();
    	StackElemType x;
    	while(!quit)
    	{
    		switch(scan())
    		{
    			case 1 : cout << "请输入要入栈的元素..." << endl;cin >> x;Push(top, x);break;
    			case 2 : if(Pop(top, &x))cout << x << " 元素出栈..." << endl;else cout << "元素为空" << endl;break;
    			default: cout << "输入错误" << endl;quit = 1;
    		}
    	}
    	return 0;
    }

  • 相关阅读:
    第二周作业
    第一周作业
    抓老鼠啊~亏了还是赚了?
    打印沙漏
    寒假作业2
    我与老师
    自我介绍
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周实验报告(五)&周总结
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835144.html
Copyright © 2020-2023  润新知