发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.csdn.net/course/detail/27109
腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518
介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。
第三个视频发布:https://edu.csdn.net/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
package com.greedy;
public class HuffmanCode {
private Entity[] source;
private Node[] q;
private Node root;
private Node[] leafs;
public HuffmanCode(char[] character,int[] freqs)throws Exception{
if(character.length!=freqs.length){
throw new Exception("数据错误");
}
source=new Entity[freqs.length];
q=new Node[freqs.length];
leafs=new Node[freqs.length];
for(int i=0;i<freqs.length;i++){
Entity entity=new Entity();
entity.setCharacter(character[i]);
entity.setFreq(freqs[i]);
source[i]=entity;
Node node=new Node();
node.setValue(freqs[i]);
node.setCharacter(character[i]);
q[i]=node;
leafs[i]=node;
}
}
public void huffman()throws Exception{
for(int i=0;i<source.length;i++){
Node node=new Node();
Node x=extractMin();
Node y=extractMin();
if(x!=null){
node.left=x;
}
if(y!=null){
node.right=y;
}
if(x!=null&&y!=null){
node.setValue(x.value+y.value);
x.parent=node;
y.parent=node;
}else{
if(x==null){
throw new Exception("error");
}
return;
}
insertQ(node);
root=node;
}
root.parent=null;
}
public void printCode(){
for(int i=0;i<leafs.length;i++){
System.out.print(leafs[i].character);
printCodeInternal(leafs[i]);
System.out.println();
}
}
private void printCodeInternal(Node node){
Node parent=node;
StringBuffer sb=new StringBuffer();
while(parent.parent!=null){
if(parent==parent.parent.left){
sb.append('0');
}else if(parent==parent.parent.right){
sb.append('1');
}
parent=parent.parent;
}
sb.reverse();
System.out.print(sb.toString());
}
public void printTree(){
System.out.println(" "+root.value);
innerPreorderWalk(root,1);
System.out.println();
}
private void innerPreorderWalk(Node node,int depth){
if(node!=null){
if(node.left!=null){
for(int i=6-depth*2;i>0;i--){
System.out.print(" ");
}
System.out.print(node.left.value+","+node.value);
}else{
System.out.print(" ");
}
if(node.right!=null){
System.out.print(" ");
System.out.print(node.right.value+","+node.value);
}else{
System.out.print(" ");
}
if(node.left!=null||node.right!=null){
System.out.println();
}
innerPreorderWalk(node.left,depth+1);
innerPreorderWalk(node.right,depth+1);
}
}
private void insertQ(Node node){;
for(int i=0;i<q.length-1;i++){
if(q[i]==null){
q[i]=node;
break;
}
}
}
private Node extractMin(){
int prevIndex=0;
int nextIndex=1;
for(int i=0;i<q.length;){
while(prevIndex<q.length-1&&q[prevIndex]==null){
prevIndex+=1;
//index=prevIndex;
}
if(q[prevIndex]==null){
return null;
}
int prev=q[prevIndex].value;
while(nextIndex<q.length-1&&q[nextIndex]==null){
nextIndex+=1;
}
if(q[nextIndex]==null){
if(q[prevIndex].left!=null||q[prevIndex].right!=null){
Node node=q[prevIndex];
q[prevIndex]=null;
return node;
};
Node node=q[prevIndex];
q[prevIndex]=null;
return node;
}
int next=q[nextIndex].value;
if(prev>next){
i=nextIndex;
prevIndex=nextIndex;
}else{
i=nextIndex+1;
nextIndex+=1;
}
}
if(q[prevIndex].left!=null||q[prevIndex].right!=null){
return q[prevIndex];
}
Node node=q[prevIndex];
q[prevIndex]=null;
return node;
}
private static class Entity{
private int freq;
private char character;
public int getFreq() {
return freq;
}
public void setFreq(int freq) {
this.freq = freq;
}
public char getCharacter() {
return character;
}
public void setCharacter(char character) {
this.character = character;
}
}
private static class Node{
private Node left;
private Node right;
private Node parent;
private int value;
private char character;
public Node getLeft() {
return left;
}
public void setLeft(Node left) {
this.left = left;
}
public Node getRight() {
return right;
}
public void setRight(Node right) {
this.right = right;
}
public Node getParent() {
return parent;
}
public void setParent(Node parent) {
this.parent = parent;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public char getCharacter() {
return character;
}
public void setCharacter(char character) {
this.character = character;
}
}
public static void main(String[] args)throws Exception{
char[] character=new char[]{'a','b','c','d','e','f'};
int [] freqs=new int[]{45,13,12,16,9,5};
HuffmanCode huffman=new HuffmanCode(character,freqs);
huffman.huffman();
huffman.printTree();
huffman.printCode();
}
}