zoukankan      html  css  js  c++  java
  • 堆栈——链表实现

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <ctime> 
    
    using namespace std;
    
    using ElemType = int;
    
    // 堆栈结构
    class Node {
    public:
    	ElemType data;
    	Node *next; 
    };
    
    // 初始化栈 
    Node* initStack(Node *head, int n)
    {
    	srand(time(NULL));
    	head->data=rand()%100 - 1;		// 栈底元素 
    	while (n--) {
    		Node *q = (Node*)malloc(sizeof(Node));
    		q->data = rand()%100 - 1;
    		q->next = head;
    		head = q;
    	}
    	return head;
    }
    
    // 压栈 
    Node* push(Node *head, ElemType val)
    {
    	Node *q = (Node*)malloc(sizeof(Node));
    	q->data = val;
    	q->next = head;
    	head = q;
    	return head;
    }
    
    // 出栈 
    Node* pop(Node *head)
    {
    	Node *p = head;
    	if (head->next == NULL) {
    		free(p);
    		return head;
    	}
    	head = head->next;
    	free(p);
    	return head;
    }
    
    void print(Node *head)
    {
    	Node *p = head;
    	cout << "从栈顶到栈底的元素依次为:";
    	while(p->next != NULL) {
    		cout << p->data << " ";
    		p = p->next;
    	}
    	cout << endl;
    }
    
    int main()
    {
    	Node *head = (Node*)malloc(sizeof(Node));		// 头指针指向栈顶 
    	head->next = NULL;
    	head = initStack(head, 10);
    	print(head);
    	head = push(head, 20);
    	print(head);
    	head = pop(head);
    	print(head);
    }
    

      

  • 相关阅读:
    MySql的基本架构续
    MySql的基本架构演变
    多列索引
    索引对单个表查询的影响
    技术在短期内总会被高估,但长期内,总会被低估
    MySql初步II
    验证启用了不安全的HTTP方法
    Struts2漏洞利用实例
    sar命令的使用
    HttpWatch的时间分析
  • 原文地址:https://www.cnblogs.com/xzxl/p/8643252.html
Copyright © 2011-2022 走看看