数据结构--实验1--栈的操作-程序员宅基地

技术标签: 数据结构与算法  

  1 #include "stdio.h"
  2 #include "malloc.h"
  3 typedef  int datatype;
  4 typedef  struct node   //定义链式栈结构
  5 {    datatype data;
  6     struct node *next;
  7 }StackNode,*LinkStack;
  8 LinkStack  Init_LinkStack()
  9 {  
 10     return NULL;
 11 }
 12 
 13 //入栈   
 14 LinkStack  Push_LinkStack(LinkStack  top, datatype x)         
 15 {    
 16         StackNode *s;
 17         s=new StackNode;
 18         s->data=x;
 19         s->next=top;
 20         top=s;
 21         return top;
 22 }
 23 
 24 //出栈
 25 LinkStack   Pop_LinkStack (LinkStack  top, datatype  *x)
 26 {
 27     StackNode *p;
 28     if(top==NULL)return NULL;
 29     else
 30     {
 31     *x=top->data;
 32     p=top;
 33     top=top->next;
 34     free(p);
 35     return top;
 36     }
 37 
 38 }
 39 void print(LinkStack  top)
 40 {    StackNode  *p=top;
 41     while(p != NULL) 
 42     {
 43         printf("%d->",p->data);
 44         p=p->next;
 45     }
 46 }
 47 //顺序栈
 48 #define MAXSIZE  1024   
 49 typedef  struct
 50 {    datatype  data[MAXSIZE];
 51     int  top;
 52 }SeqStack;
 53 
 54 //顺序栈置空栈:首先建立栈空间,然后初始化栈顶指针。
 55 SeqStack  *Init_SeqStack()
 56 {    SeqStack  *s;
 57     s=new SeqStack;
 58     s->top= -1;  
 59     return s;
 60 }
 61 
 62 //顺序栈判空栈
 63 int Empty_SeqStack(SeqStack *s)
 64 {    if (s->top == -1)  return 1;
 65     else  return 0;
 66 }
 67 
 68 //顺序栈入栈
 69 int Push_SeqStack (SeqStack *s, datatype  x)
 70 {
    if (s->top == MAXSIZE-1)  return 0; //栈满不能入栈
 71 else {    s->top++;
 72         s->data[s->top]=x;
 73         return 1;
 74     }
 75 }
 76 
 77 //顺序栈出栈
 78 int  Pop_SeqStack(SeqStack *s, datatype *x)
 79 {  
 80     if  (Empty_SeqStack(s))  return 0; //栈空不能出栈 
 81     else  { *x=s->data[s->top];
 82             s->top--;  return 1;        //栈顶元素存入*x,返回
 83           }
 84 }
 85 void conversion(int N,int r)
 86 {    SeqStack  *s;
 87     datatype   x;                         
 88     s=Init_SeqStack();        //初始化栈
 89     printf("\n %d 的十进制数转换成 %d 进制为: ",N,r);
 90     while ( N )                            
 91     {    Push_SeqStack (s,N%r);     //余数入栈 
 92         N=N/r ;                //商作为被除数继续 
 93     }   
 94     while  ( !Empty_SeqStack(s))  
 95     {    Pop_SeqStack (s,&x) ;   
 96         printf(" %d ",x) ;      
 97     }         
 98 }  
 99 void main()
100 {
101     datatype x;
102     int i,j,k;
103     LinkStack top;
104     top=Init_LinkStack();
105     do
106     {
107         printf("\n\n\n\n");
108     printf("\t\t\t 栈的应用子系统\n");
109     printf("\t\t*******************************\n");
110     printf("\t\t*        1----链式进栈     *\n");
111     printf("\t\t*        2----链式出栈    *\n");
112     printf("\t\t*        3----链栈显示    *\n");
113     printf("\t\t*        4----进制转换    *\n");
114     printf("\t\t*        0----返  回    *\n");
115     printf("\t\t*******************************\n");
116     printf("\t\t 请选择菜单项(0-4):");
117     scanf("%d",&k);
118     getchar();
119     switch(k)
120     {
121     case 1:
122         printf("\n   请输入要进栈的数据X:");
123         scanf("%d",&x);
124         top=Push_LinkStack(top,x);
125         break;
126     case 2:
127         Pop_LinkStack(top,&x);
128         break;
129     case 3:
130         printf("\n 链式栈的元素有:");
131         print(top);
132         break;
133     case 4: 
134         int N,r;
135         printf("\n  请输入一个整数N=");
136         scanf("%d",&N);
137         printf("\n 请输入一个要转换的进制数r=");
138         scanf("%d",&r);
139         conversion(N,r);
140         break;
141     
142     }
143         
144     }while(k);
145 }

 

转载于:https://www.cnblogs.com/zongyao/p/9255378.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30681615/article/details/98359577

智能推荐

【PyQt5】Python在PyQt5中使用ECharts绘制图表_pyqt5 pyecharts-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏33次。Python在PyQt5中使用ECharts绘制图表_pyqt5 pyecharts

将本地网站发布到服务器上_网页发布-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏4次。将静态的网页部署到服务器上,首先需要下载一个xftp,帮助我们上传文件;以及它的服务端xshell帮助我们重启服务器1,首先与服务器建立连接2,要想把我们的静态网页发布到服务器上,前提是我们的服务器安装了nignx,完成这些以后把我们本地的网页文件夹上传到/usr/local/nginx/html的路径下3,文件上传成功后,还需要我们修改nignx的配置文件,打开/usr/local/ng..._网页发布

java.net.ConnectException: no available server-程序员宅基地

文章浏览阅读2.1w次,点赞8次,收藏10次。我出现这个错误是因为没有加载我的配置文件在这里插入图片描述可以看到我上图打印的是连接我本地的nacos,并且连接超时但实际我的配置文件并不是配置的本地,看下图这就是典型的没有加载解决办法:完成这些就能加载到配置文件了..._no available server

请求大佬帮忙看看VScode Tensorflow model.fit 报错_model.fit报错use_multiprocessing=use_multiprocessing-程序员宅基地

文章浏览阅读1k次。import numpy as npimport tensorflow_core as tffrom tensorflow.keras.layers import Dense, SimpleRNNimport matplotlib.pyplot as pltimport osinput_word = "abcde"w_to_id = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4} # 单词映射到数值id的词典id_to_onehot = {0: [1.,._model.fit报错use_multiprocessing=use_multiprocessing

chapter04-程序员宅基地

文章浏览阅读152次。1、创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令)[root@localhost ~]mkdir -p /guanli/{zonghe,jishu}2、添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003[root@localhost ~]# groupadd -g 2001 zon..._在chapter04的包cn.itcast.chapter04.prsponse

字符串_空串是什么都没有字符串吗-程序员宅基地

文章浏览阅读362次。串的定义串是字符串的简称。在数据结构中,串是一种在数据元素的组成上具有一定约束条件的线性表,即要求组成线性表的所有数据元素都是字符,所以说串是一个有穷的字符序列。串是由零个或多个字符组成的有限序列,记作s=”s0s1…sn-1”(n≥0),其中s是串名,字符个数n称作串的长度,双撇号括起来的字符序列”s0s1…sn-1”是串的值字符串(String)是由数字、字母、任何其它的符号组成的一串字符。零个字符的串(即:"")称为空串,空串不包含任何字符。值得注意的是:(1)长度为1的空格串" “不等同于_空串是什么都没有字符串吗

随便推点

c++中字符、字符串和数字间的转换_c++string字符变ascii-程序员宅基地

文章浏览阅读701次,点赞3次,收藏5次。1、字符的ASCII码:获取字符ASCII码:(int)a或int m=a;获取ASCII对应的字符:(char)m或char a=m;字符之间相加减,就是ASCII的加减:int n=a-b;得到的n就是ASCII码,对应的字符为(char)n;2、字符串和数字间的转换:#include<sstream>#include<string>using namespace std;int main(){ double a = 123.32; _c++string字符变ascii

【SQL注入漏洞-04】布尔盲注靶场实战_oracle布尔盲注-程序员宅基地

文章浏览阅读6.5k次,点赞4次,收藏3次。当我们改变前端页面传输给后台sql参数时,页面没有显示相应内容也没有显示报错信息时,不能使用联合查询注入和报错注入,这时我们可以考虑是否为基于布尔的盲注。利用页面返回的布尔类型状态,正常或者不正常;我们输入的语句让页面呈现出两种状态,相当于true和false,根据这两种状态可以判断我们输入的语句是否查询成功。布尔盲注就是根据这两种状态,来反推我们输入的条件是真还是假。以sqli-labs-masterless-8关为例_oracle布尔盲注

ROS学习(11)使用ROS创建地图_ros建图-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏72次。创建地图是一件比较复杂的工作,ROS利用map_server地图服务器,借助激光雷达和机器人的里程信息来完成这项工作。本篇我们还是利用柳树车库作为默认的地图环境。主要介绍了地图的创建、保存、加载,下一篇尝试配置导航功能包集,并在gazebo仿真环境下完成自定义机器人的自主导航。httpshttpshttpshttps。..._ros建图

自定义Magento页标题与Meta描述_magento seo suite 自定义 meta description-程序员宅基地

文章浏览阅读3.2k次。在Magento中,CMS页、产品页、分类页均可以设置Meta keywords与Meta Description。但在其它页面上如何设置呢?例如今天SEO团队发来文档,要求修改Checkout页、MyAccount页、Login页、Contact页等等的页标题与Meta描述部分。于是第一反应就是用XML来配置.另:在System-Configration-Design-Html-_magento seo suite 自定义 meta description

【PTA-python】第4章-15 换硬币 (20 分)_pta换硬币python-程序员宅基地

文章浏览阅读1.3k次。第4章-15 换硬币分析题目解法分析为了实现各个硬币数目>=1,range()函数设定倒序范围,先求五分硬币数目,再求二分硬币数目,最后求一分硬币数目,注意在往下递推求解的过程中,各个硬币数目的条件是>=1,这影响到range(five,0,-1)和if one>=1:题目将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?输入格式:输入在一行中给出待换的零钱数额x∈(8,100)。输出格式:要求按5分、2分和1分硬币的数量依次从大到小的顺序_pta换硬币python

firewall限制或开放IP及端口命令_firewall-cmd --zone=public --list-ports-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏23次。一、查看防火墙状态1、首先查看防火墙是否开启,如未开启,需要先开启防火墙并作开机自启systemctl status firewalld开启防火墙并设置开机自启systemctl start firewalldsystemctl enable firewalld一般需要重启一下机器,不然后面做的设置可能不会生效二、开放或限制端口1、开放端口(1)如我们需要开启XShell连接时需要使用的22端口firewall-cmd --zone=public --add-port=22/tcp _firewall-cmd --zone=public --list-ports

推荐文章

热门文章

相关标签