GT

二进制转十进制-栈的方式实现

血红的双手。 提交于 2020-04-06 01:01:08
文章目录 二进制转十进制实现 测试 二进制转十进制实现 注意因为使用到了math.h中的函数,编译的时候需要连接数据函数库,即 -lm # include <stdio.h> # include <stdlib.h> # include <math.h> # define STACK_INIT_SIZE 20 # define STACKINCREMENT 10 typedef char ElemType ; typedef struct { ElemType * base ; ElemType * top ; int stackSize ; } sqStack ; void InitStack ( sqStack * s ) ; void Push ( sqStack * s , ElemType e ) ; void Pop ( sqStack * s , ElemType * e ) ; int StackLen ( sqStack s ) ; void InitStack ( sqStack * s ) { s -> base = ( ElemType * ) malloc ( STACK_INIT_SIZE * sizeof ( ElemType ) ) ; if ( ! s -> base ) { exit ( 0 ) ; } s -> top = s -> base

第7周 【项目2

有些话、适合烂在心里 提交于 2020-04-05 23:11:59
链队算法库中主要包含如下操作: 1.初始化链队 2.销毁链队 3.判断链队是否为空 4.计算链队长度 5.进队 6.出队 一、其头文件如下: #ifndef LIQUEUE_H_INCLUDED #define LIQUEUE_H_INCLUDED typedef char ElemType; typedef struct qnode { ElemType data; struct qnode *next; } QNode; //链队数据结点类型定义 typedef struct { QNode *front; QNode *rear; } LiQueue; //链队类型定义 void InitQueue(LiQueue *&q); //初始化链队 void DestroyQueue(LiQueue *&q); //销毁链队 bool QueueEmpty(LiQueue *q); //判断链队是否为空 int QueueLength(LiQueue *q); //返回队列中数据元素个数 void enQueue(LiQueue *&q,ElemType e); //入队 bool deQueue(LiQueue *&q,ElemType &e); //出队 #endif // LIQUEUE_H_INCLUDED 二、在源文件liqeue.cpp中实现头文件中定义的函数

C/C++ 第三周线性表项目(1) 顺序表的基本运算

荒凉一梦 提交于 2020-04-05 23:08:03
/* * Copyright (c) 2017,烟台大学计算机学院 * All right reserved. * 文件名称:main.cpp * 作者:黄士胜 * 完成日期:2017年9月14日 * 版本号:v1.0 * * 问题描述:实现有关线性表的各种运算 * 输入描述:标准函数输入 * 程序输出:标准函数输出 */ 通过建立多文件方式来完成相关线性表的各种运算。 创建了一个 header.h存放函数声明, ccc.cpp用来存放函数定义,main函数来存放主函数体。 多文件如图: main 主体函数: #include "..\header.h" #include <stdio.h> int main() { SqList *sq;//创建一个sq指向结构体的指针 ElemType x[6]= {5,8,7,2,4,9};//建立并初始化一个数组 CreateList(sq, x, 6);//创建线性表函数 if(ListEmpty(sq))//判断线性表是否为空 printf("该线性表无效!\n"); else printf("该线性表有效!\n"); DispList(sq);//输出线性表所有元素函数 return 0; } ccc.cpp 函数定义: #include <stdio.h> #include <malloc.h> #include "..

第8周 【项目5

拟墨画扇 提交于 2020-04-05 23:01:12
/* *Copyright (c)2017,烟台大学计算机与控制工程学院 *All rights reservrd. *作者:李欣豪 *完成时间:2017年12月14日 *版本号:v1.0 *问题描述:采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0。 一、以顺序串算法库为基础: 头文件: #ifndef SqString_H_INCLUDED #define SqString_H_INCLUDED #define MaxSize 100 //最多的字符个数 typedef struct { char data[MaxSize]; //定义可容纳MaxSize个字符的空间 int length; //标记当前实际串长 } SqString; void StrAssign(SqString &s,char cstr[]); //字符串常量cstr赋给串s void StrCopy(SqString &s,SqString t); //串t复制给串s bool StrEqual(SqString s,SqString t); //判串相等 int StrLength(SqString s); //求串长 SqString Concat(SqString s,SqString t); //串连接 SqString SubStr(SqString

C/C++ 语言中体验复杂度:汉诺塔问题(2)

眉间皱痕 提交于 2020-04-05 22:52:05
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:黄士胜 *完成日期:2017年9月13日 *版 本 号:v1.0 * *问题描述:汉诺塔问题 *输入描述:盘子数目为 4 8 16 20 24 *程序输出:见截屏 */ #include <stdio.h> #define discCount 24 long move(int, char, char,char); int main() { long count; count=move(discCount,'A','B','C'); printf("%d个盘子需要移动%ld次\n", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } } #include <stdio.h> #define discCount 20 long move(int, char, char,char); int main() { long count; count=move

天呐,一个简单的统一日志格式我踩了多少坑

大兔子大兔子 提交于 2020-04-05 21:55:40
天呐,一个简单的统一日志格式我踩了多少坑 这几天接到一个需求,是要求将 log4j 的配置文件统一封装到 jar 文件,同时这个 jar 依赖 skywalking 的相关包,从大的层面上来说,为了统一整个公司的日志输出格式,便利的接入 skywalking 和 elk 做准备。 我是怎么考虑的 全局格式统一,也就是说需要约束好 log4j2.xml 的文件位置 由于我们现有的日志文件位置是写死在 log4j2.xml 的 ,现在并不想调整该文件的内容,但是每个应用的日志应该在单独的文件夹下,所以需要在xml配置文件中配置一个变量用来设置应用名称。 不同的环境对代码中日志的输出级别不同 例如在开发环境中,我们需要对 sql 日志进行输出,但是在生产环境中,由于性能和日志量的问题,并不会输出 sql 的日志信息。 配置要简单 配置是需要有学习成本的,最好能够不需要单独的配置就能够完成日志的统一 兼容 读取配置文件的方式要兼容,例如项目中可能存在配置文件为 yml 、 properties ,而且命名方式可能千奇百怪,应该对各个应用做最大程度上的兼容 文档 提供一定程度的文档,指导能够个性化配置一些内容 研究相关技术 log4j2 SpringBoot Logging SpringBoot 生命周期 整个开发的主要做法 如何读取配置文件内容 熟悉 Spring 的朋友应该知道,

购物券

落花浮王杯 提交于 2020-04-05 21:53:00
MobileShop class MobileShop { InnerPurchaseMoney purchaseMoney1; InnerPurchaseMoney purchaseMoney2; private int mobileAmount; MobileShop() { purchaseMoney1=new InnerPurchaseMoney(20000); purchaseMoney2=new InnerPurchaseMoney(10000); } void setMobileAmount(int m) { mobileAmount=m; } int getMobileAmount() { return mobileAmount; } class InnerPurchaseMoney { int moneyValue; InnerPurchaseMoney(int m) { moneyValue=m; } void buyMoblie() { if (moneyValue>=20000) { mobileAmount=mobileAmount-6; System.out.println("用价值"+moneyValue+"的内部购物券买了6部手机"); } else if(moneyValue<20000&&moneyValue>=10000) {

C/C++ 第八周串和数组 (一)顺序串算法 项目2—(四)

眉间皱痕 提交于 2020-04-05 21:02:43
/* *Copyright(c)2017,烟台大学计算机学院 *All right reserved. *文件名:main.cpp sqqueue.h sqqueue.cpp *作者:黄士胜 *完成日期:2017年11月1日 *版本号:v1.0 * *问题描述: 采用顺序存储的方式存储串,实现下列算法并测试。 *输入描述:无 *程序输出:见运行结果截图 */ 问题描述: (四) 有两个串s1和s2,设计一个算法求一个这样的串,该串中的字符是s1和s2中公共字符, 所谓公共子串,是由在s1中有,且在s2中也有的字符构成的字符。例s1为”message”,s2为”agent”,得到的公共子串是”eage”: 主函数: #include <stdio.h> #include "../sqString.h" SqString CommChar(SqString s1,SqString s2) { SqString s3; int i,j,k=0; for (i=0; i<s1.length; i++) { for (j=0; j<s2.length; j++) if (s2.data[j]==s1.data[i]) break; if (j<s2.length) //s1.data[i]是公共字符 { s3.data[k]=s1.data[i]; k++; } } s3.length=k;

spring boot security自定义配置授权服务器实现Oauth2授权(支持密码和授权码两种模式)

﹥>﹥吖頭↗ 提交于 2020-04-05 20:51:44
1、application.yml server: port: 8888 security: oauth2: client: client-id: test_client_id client-secret: test_client_secret scope: read,write auto-approve-scopes: '.*' logging: level: org.springframework.security: info 2、pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

第13周 【项目三】 验证二叉排序树相关算法

限于喜欢 提交于 2020-04-05 20:13:32
/* *Copyright (c)2017,烟台大学计算机与控制工程学院 *All rights reservrd. *作者:李欣豪 *完成时间:2017年11月30日 *版本号:v1.0 *问题描述: 运行并本周视频中所讲过的算法,观察结果并领会算法。 认真阅读并验证二叉排序树相关算法。 (1)由整数序列{43,52,75,24,10,38,67,55,63,60}构造二叉排序树; (2)输出用括号法表示的二叉排序树; (3)用递归算法和非递归算法查找关键字55; (4)分别删除43和55,输出删除后用括号法表示的二叉排序树。 一、代码如下: #include <stdio.h> #include <malloc.h> typedef int KeyType; typedef char InfoType[10]; typedef struct node //记录类型 { KeyType key; //关键字项 InfoType data; //其他数据域 struct node *lchild,*rchild; //左右孩子指针 } BSTNode; //在p所指向的二叉排序树中,插入值为k的节点 int InsertBST(BSTNode *&p,KeyType k) { if (p==NULL) //原树为空, 新插入的记录为根结点 { p=(BSTNode *)malloc