- 博客(43)
- 收藏
- 关注
原创 多线程编程(三)
1.ArrayBlockingQueue由数组支持的有界阻塞队列package com.company;import java.util.concurrent.ArrayBlockingQueue;public class ABQDemo { private static ArrayBlockingQueue<Integer> arrayBlockingQueue = new ArrayBlockingQueue<>(10); public ...
2021-04-06 17:00:16 126
原创 多线程编程(二)
1. 饥饿饥饿是指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况。比如当前线程处于一个低优先级的情况下,操作系统每次都调用高优先级的线程运行,就会导致当前线程虽然可以运行,但是一直不能被运行的情况。2. 线程的生命周期线程的生命周期共有 6 种状态,分别是:新建New、运行(可运行)Runnable、阻塞Blocked、计时等待Timed Waiting、等待Waiting和终止Terminate。(1)当你声明一个线程对象时,线程处于新建状态,...
2021-04-06 16:36:21 90
原创 多线程编程(一)
目录1.CreateThread2. 线程变量3.线程同步4. 死锁1.CreateThreadpackage com.company;public class CreateThread { public static void main(String[] args) { Thread1 thread1 = new Thread1(); Thread thread2 = new Thread(new Thread2()); ...
2021-04-06 16:20:12 137
原创 网络编程
1. HttpURLConnectionpackage com.company;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;public class HttpUrlTest {...
2021-04-06 15:10:11 95
原创 Lambda
1.Lambda表达式// Lambda 测试package com.company;public class Main { public static void main(String[] args) { Main test = new Main(); // 带有类型声明的表达式 MathOperation addition = (int a, int b) -> a + b; // 没有类型声明的表达式 MathOperation subtractio...
2021-03-23 22:23:09 108
原创 泛型和集合
1. 泛型// 定义泛型类class Test<T> { private T ob; public Test(T ob) { this.ob = ob; } public T getOb() { return ob; } public void setOb(T ob) { this.ob = ob; } public void showType() { System.out.println("T的实际类型是:" + ob.getClass()...
2021-03-20 23:27:45 177
原创 与栈有关:如何判断括号的合法性
首先说一下思路:定义一个栈s,然后遍历字符串str,遇到左括号就入栈,遇到右括号就去栈中寻找最近的左括号,看是否匹配。char leftOf(char c){ if (c == '}') return '{'; if (c == ']') return '['; return ')';}bool isValid(string str){ stack<char> ...
2019-11-13 11:06:04 238
原创 B_树
/*树表查找*/typedef int KeyType;const int MaxKey = 65535;/*B_树*///结点类型定义const int m = 10;struct MBNode{ int keynum; //关键字个数域 MBNode *parent; //指向父结点的指针域 KeyType key[m+1]; //保存n个关键字的域,下标0位置...
2018-04-14 22:20:59 209
原创 哈希查找
const int MaxSize = 50;typedef int KeyType;struct SeqList{ KeyType key; int data;};typedef SeqList ElemType;/*散列(哈希)查找*///除留余数法int Hash(char *k, int m){ int len = strlen(k); unsigned...
2018-04-14 21:25:57 268
原创 一些常用的查找算法
/*顺序表查找*/const int MaxSize = 50;typedef int KeyType;struct SeqList{ KeyType key; int data;};typedef SeqList ElemType;ElemType A[MaxSize];//顺序查找#ifndef SEQSCHint Seqsch(ElemType A[],...
2018-04-13 21:52:27 376
原创 拓扑排序及关键路径
const int MaxVertexNum = 50;struct edgenode{ int adjvex; //邻接点 int weight; edgenode *next; //指向下一个边结点的链域};typedef edgenode *adjlist[MaxVertexNum];/*把这种顶点表示活动、边表示活动间先后关系的有向图称做顶点活动网(Activ...
2018-04-13 17:30:22 546
原创 图的最短路径
从一顶点到其余各顶点的最短路径:/*从一顶点到其余各顶点的最短路径*/#ifndef DJKSTRAvoid PATH(adjlist path, int m, int j) //m = 1,j = 2/3{ edgenode *p,*q,*s; //把顶点j的当前最短路径清除掉 p = path[j]; while (p != NULL) { path[j] = p-&g...
2018-04-11 12:50:20 209
原创 图的存储结构及最小生成树
.h文件:const int MaxVertexNum = 50;const int MaxEdgeNum = 100;typedef int VertexType;typedef VertexType vexlist[MaxVertexNum];typedef int adjmatrix[MaxVertexNum][MaxVertexNum];#ifndef ADJMATRIX/...
2018-04-08 21:07:28 994
原创 广义树
假定建立树的存储结构采用标准形式。建立树的存储结构就是在内存中生成一棵树的标准形式的存储映像,即三叉链表。在树的生成算法中,需要设置两个堆栈,一个用来存储指向根结点的指针,以便孩子结点向双亲结点链接之用,另一个用来存贮待链接的孩子结点的序号,以便能正确地链接到双亲结点的指针域。假定这两个栈分别用s和k表示,s和k栈的深度不会大于整个树的深度。按层遍历定义为:先访问第一层结点(即树根结点),再从左到...
2018-04-05 21:32:14 801
原创 二叉查找树
.h文件:/*二叉查找(排序)树*/struct BTreeNode{ ElemType data; BTreeNode *left; BTreeNode *right;};//#define FLAG#ifdef FLAG//二叉排序树的查找(递归)int Find(BTreeNode *BST,ElemType &item){ if(BST == NULL...
2018-04-05 20:11:16 153
原创 中序线索二叉树
/*中序线索二叉树*/#include <iostream>using namespace std;typedef char ElemType;struct TTreeNode{ ElemType data; TTreeNode *left; TTreeNode *right; int ltag; int rtag;};//对二叉树进行中序线索化即建立...
2018-04-05 15:52:40 472
原创 二叉树
.h文件:/*二叉树独立结点的链式存储*/typedef char ElemType;struct BTreeNode{ ElemType data; BTreeNode *left; BTreeNode *right; BTreeNode *parent;};//初始化二叉树void InitBTree(BTreeNode* &BT){ BT = NULL;...
2018-04-05 13:15:38 439
原创 求解迷宫问题
/*求解迷宫问题*/#include <iostream>using namespace std;const int m = 6;const int n = 8;int maze[m+2][n+2]; //m×n大小的迷宫,0可前进,1通行受阻。并且在迷宫的周围镶上边框int mark[m+2][n+2]; //保存访问标记,0未访问,1已访问int M[4]...
2018-04-05 10:59:16 226
原创 编写一个算法输出n个布尔量的所有可能的组合
#include <iostream>using namespace std;enum Boolean{True,False};int cnt = 0;void Coding(Boolean b[],int k,int n){ if(k == n) { for(int i = 0; i < n; i++) cout<<b[i]; c...
2018-04-05 09:42:00 571
原创 将中缀表达式转换为后缀表达式
函数如下:void Change(char *s1,char *s2){ Stack R; InitStack(R); Push(R,'@'); int i = 0; //用于指示扫描s1串中字符的位置,初值为0 int j = 0; //用于指示s2串中待存字符的位置,初值为0 char ch = s1[i]; while(ch != '@') { switch(ch)...
2018-04-05 09:20:59 407
原创 栈的链式存储
.h文件:/*栈的链式存储*/#include <iostream>using namespace std;typedef int ElemType;struct LNode{ ElemType data; LNode *next;};//初始化void InitStack(LNode* &HS){ HS = NULL;}//清空栈vo...
2018-04-03 22:05:16 165
原创 栈的应用之后缀表达式求值
在这里使用的是顺序栈,头文件可参考前文.cpp文件:/*后缀表达式的求法*/#include <iostream>#include <strstream>using namespace std;typedef float ElemType;const int StackMaxSize = 50;struct Stack{ ElemType s...
2018-04-03 21:48:59 1111
原创 使用队列的程序举例(2)
.h文件:/*循环队列的链式存储*///初始化void InitQueue(LinkQueue &HQ){ HQ.front = HQ.rear = NULL;}//清空队列void ClearQueue(LinkQueue &HQ){ LNode *p = HQ.front; while(p != NULL) { HQ.front = p->next; delete p...
2018-04-03 20:49:24 1160
原创 使用队列的程序举例(1)
.h文件:/*循环队列的顺序存储*///初始化void InitQueue(Queue &Q){ //把队首和队尾指针置为同一个下标值0表示队空 Q.front = Q.rear = 0;}//清空队列void ClearQueue(Queue &Q){ Q.front = Q.rear = 0;}//检查队列是否为空int QueueEmpty(...
2018-04-03 20:40:20 1788
原创 栈的顺序存储(3)
例:把十进制整数转换为二至九之间的任一进制数输出。由计算机基础知识可知,把一个十进制整数x转换为任一种:进制数得到的是一个r进制的整数,假定为y,转换方法是逐次除基数r取余法。具体叙述为:首先用十进制整数%除以基数r,得到的整余数是r进制数y的最低位y0,接着以二除以r的整数商作为被除数,用它除以r得到的整余数是y的次最低位y1,依次类推,直到商为0时得到的整余数是y的最高位ym,假定,共有m十1...
2018-04-02 21:22:35 197
原创 栈的顺序存储(2)
例:堆栈在计算机语言的编译过程中用来进行语法检查,试编写一个算法,用来检查一个C+十语言程序中的花括号、方括号和圆括号是否配对,若能够全部配对则返回1,否则返回0。问题分析:在这个算法中,需要扫描待检查程序中的每一个字符,当扫描到每个花、方、圆左括号时,令其进栈,当扫描到每个花、方、圆右括号时,则检查栈顶是否为相应的左括号,若是则做退栈处理,若不是则表明出现了语法错误,应返回0。当扫描到程序文件结...
2018-04-02 21:06:59 431 2
原创 栈的顺序存储(1)
例:从键盘上输入一批整数,然后按照相反的次序打印出来。.h文件:/* 栈的顺序存储 *///初始化void InitStack(Stack &S){ S.top = -1;}//清空栈void ClearStack(Stack &S){ S.top = -1;}//检查一个栈是否为空int StackEmpty(Stack &S){ ret...
2018-04-02 20:34:47 287
原创 线性表的链式存储之元素结点构成
例 (1)让计算机产生出20个0一99之间的随机整数并利用数组把它们按升序链接起来; (2)按照随机数产生的顺序显示出它们; (3)按照升序链接的顺序显示出它们; (4)按照升序链接的顺序显示出它们,并显示出它们之间的链接指针,要求每个结点的显示格式为“( data域值,next域值)”,并且规定每行显示7个结点数据; (5)把该数组写人到文件、:xxkl . dat',中...
2018-03-31 15:39:27 396
原创 单链表的链式存储之独立结点构成
例:编写一个程序依次实现如下功能:(1)让计算机产生出20个0一9之间的随机整数并依次保存到单链表中;(2)输出遍历单链表;(3)从单链表中删除与给定值相等的所有结点;(4)输出遍历单链表;(5)输出单链表的长度。由独立结点构成的单链表.h文件:/*由独立结点构成的单链表*///初始化void InitList(LNode* &HL){ HL = NULL;}//清空单链表...
2018-03-30 21:36:10 736
原创 线性表顺序存储
.h文件#include <iostream>using namespace std;//初始化void InitList(List &L){ L.size = 0;}//删除所有元素void ClearList(List &L){ L.size = 0;}//求表长int ListSize(const List L){ return...
2018-03-30 19:44:49 145
原创 数字颠倒
#include <iostream>using namespace std;char t[32];int main(){ int a,k = 0; cin>>a; while(a) { int temp = a % 10; t[k] = temp + '0'; k++; a = a / 10; } cout<<t;...
2018-03-26 22:15:09 683
原创 字符个数统计
#include <iostream>#include <string>using namespace std;int ans[128] = {0};int main(){ int cnt = 0; string temp; cin>>temp; int len = temp.length(); for(int i = 0; i <...
2018-03-26 22:10:05 109
原创 提取不重复的整数
#include <iostream>using namespace std;int main(){ int a,k = 0,t[32],sum = 0; cin>>a; while(a) { int temp = a % 10; int flag = 1; if(k) { for(int i = 0; i < k; i++)...
2018-03-26 21:50:24 129
原创 字符串分隔
时间限制:1秒 空间限制:32768K 题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入abc123456789输出abc000001234567890000000python实现:# -...
2018-03-22 21:38:04 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人