数组实现堆栈完成扑克洗牌发牌过程
发布日期:2021-06-21 02:53:47 浏览次数:6 分类:技术文章

本文共 2159 字,大约阅读时间需要 7 分钟。

#include 
#include
#include
#include
using namespace std;void Swap(int*,int*);void push(int statck[],int MAX,int val);int pop(int stack[]);int top=-1;int main(void){ int card[52],stack[52]={0}; int i,j,k=0, ascVal; char suit[4][10]={"草花","方块","红桃","黑桃"}; int style;//只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。如果想在一个程序中生成随机数序列,//需要至多在生成随机数之前设置一次随机种子。// 即:只需在主程序开始处调用srand((unsigned)time(NULL)); 后面直接用rand就可以了。//不要在for等循环放置srand((unsigned)time(NULL)); srand((unsigned)time(NULL)); for (i=0;i<52;i++) card[i]=i+1;//card[i]里边存了牌的序号 cout<<"[洗牌中...请稍后!]"<
=0) { style = stack[top]/13; //计算扑克牌的花色 switch(style) //扑克牌花色对应的图标 { case 0: //梅花 ascVal=0; break; case 1: //方块 ascVal=1; break; case 2: //红心 ascVal=2; break; case 3: //黑桃 ascVal=3; break; } cout<<"["<
<
<
<<"]\t"; if(top%4==0) cout<
=MAX-1) cout<<"[堆栈已经满了]"<

核心代码模块:

//栈顶为stack[Max-1],栈底为stack[0]void push(int stack[],int MAX,int val){	if(top>=MAX-1)		cout<<"[堆栈已经满了]"<

链表实现堆栈核心代码

using namespace std;class Node	//声明堆栈链表节点{   public:   int data;	//声明存放堆栈数据的变量   class Node *next;	//堆栈中用来指向下一个节点的指针};typedef class Node Stack_Node;		//定义堆栈中节点的新类型,Node是一个类型,相当于int,此处定                                     //义一个新类型,stack_Node也就具有了Node的属性typedef Stack_Node *Linked_Stack;	//定义链表堆栈的新类型,此处Stack_Node *是一个指针类型,                                     //相当于int*,此处Linked_Stack便有了Node*的属性Linked_Stack top=NULL;				//指向堆栈顶端的指针//可根据top的值判断堆栈的状态//判断是否为空堆栈int isEmpty(){    if(top==NULL) return 1;    else return 0;}//将指定的数据压入堆栈void push(int data){    Linked_Stack new_add_node;	//新加入节点的指针    //分配内存给新节点    new_add_node=new Stack_Node;   //Test* pTest = new Test()    new_add_node->data=data;		//将传入的值赋值给节点的数据变量    new_add_node->next=top;		//将新节点指向堆栈的顶端,top是一个栈顶指针    top=new_add_node;			//新节点成为堆栈的顶端}//从堆栈弹出数据int pop(){    Linked_Stack ptr;		//指向堆栈顶端的指针    int temp;    if(isEmpty())			//判断堆栈是否为空,如果是则返回-1    {       cout<<"===目前为空堆栈==="<
next; //将堆栈顶端的指针指向下一个节点,让top保持在链表最后面 temp=ptr->data; //取出堆栈的数据 free(ptr); //将节点占用的内存释放 return temp; //将从堆栈取出的数据返回给主程序 }}

 

转载地址:https://blog.csdn.net/konglingshneg/article/details/85228556 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:面结构光三角测距原理
下一篇:利用数组实现入栈出栈

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月13日 09时06分35秒