git & 樹結構
樹
樹是一種分層資料的抽象模型。
二叉樹
二叉樹的節點最多隻能有兩個節點。
二叉樹搜尋樹
二叉搜尋樹是二叉樹的一種,左側子節點儲存(父節點)小的值,右側子節點儲存(比父節點大或者等於)的值
function BinarySearchTree() {
var Node = function(key){
this.key = key;
this.left = null;
this.right = null;
};
var root = null;
this.insert = function(key){
var newNode = new Node(key);
if (root === null){
root = newNode;
} else {
insertNode(root,newNode);
}
};
var insertNode = function(node, newNode){
if (newNode.key < node.key){
if (node.left === null){
node.left = newNode;
} else {
insertNode(node.left, newNode);
}
} else {
if (node.right === null){
node.right = newNode;
} else {
insertNode(node.right, newNode);
}
}
};
this.getRoot = function(){
return root;
};
this.search = function(key){
return searchNode(root, key);
};
var searchNode = function(node, key){
if (node === null){
return false;
}
if (key < node.key){
return searchNode(node.left, key);
} else if (key > node.key){
return searchNode(node.right, key);
} else {
return true;
}
};
this.inOrderTraverse = function(callback){
inOrderTraverseNode(root, callback);
};
var inOrderTraverseNode = function (node, callback) {
if (node !== null) {
inOrderTraverseNode(node.left, callback);
callback(node.key);
inOrderTraverseNode(node.right, callback);
}
};
this.preOrderTraverse = function(callback){
preOrderTraverseNode(root, callback);
};
var preOrderTraverseNode = function (node, callback) {
if (node !== null) {
callback(node.key);
preOrderTraverseNode(node.left, callback);
preOrderTraverseNode(node.right, callback);
}
};
this.postOrderTraverse = function(callback){
postOrderTraverseNode(root, callback);
};
var postOrderTraverseNode = function (node, callback) {
if (node !== null) {
postOrderTraverseNode(node.left, callback);
postOrderTraverseNode(node.right, callback);
callback(node.key);
}
};
this.min = function() {
return minNode(root);
};
var minNode = function (node) {
if (node){
while (node && node.left !== null) {
node = node.left;
}
return node.key;
}
return null;
};
this.max = function() {
return maxNode(root);
};
var maxNode = function (node) {
if (node){
while (node && node.right !== null) {
node = node.right;
}
return node.key;
}
return null;
};
this.remove = function(element){
root = removeNode(root, element);
};
var findMinNode = function(node){
while (node && node.left !== null) {
node = node.left;
}
return node;
};
var removeNode = function(node, element){
if (node === null){
return null;
}
if (element < node.key){
node.left = removeNode(node.left, element);
return node;
} else if (element > node.key){
node.right = removeNode(node.right, element);
return node;
} else {
if (node.left === null && node.right === null){
node = null;
return node;
}
if (node.left === null){
node = node.right;
return node;
} else if (node.right === null){
node = node.left;
return node;
}
var aux = findMinNode(node.right);
node.key = aux.key;
node.right = removeNode(node.right, aux.key);
return node;
}
};
}
GIT
1、這周git上遇到了一些問題,假期裡把Git公共鑰匙 給 重置了 導致 pull push 程式碼沒有許可權,之前在github gitlab 碼雲這些程式碼託管網站上 是圖形化配置公匙,由於公司git倉庫是自己伺服器部署的,所以需要登入伺服器 把公匙配置進去 ,/home/git/.ssh/authorized_keys
2、還有一個就是測試環境程式碼 push git倉庫後,雖然 遠端git倉庫更新了程式碼但是實際應用的目錄下程式碼沒有更新,後來用git 命令 push 程式碼的時候發現了報錯(圖形化下看的完全沒有問題),發現有個檔案衝突了(不是程式碼檔案),需要刪除或者移除(為什麼不去更新這個檔案)。解決問題的同時 深刻理解了 git hooks的作用,自動部署 要加強學習了。
相關文章
- 樹結構總結
- 樹形結構
- 樹型結構
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 【Algorithm】樹結構整理Go
- 資料結構——樹資料結構
- 資料結構-樹資料結構
- XML 樹結構概述XML
- layui樹形結構UI
- TreeView樹狀結構View
- java樹形結構Java
- 七、基本資料結構(樹形結構)資料結構
- 資料結構學習之樹結構資料結構
- 資料結構之樹( 線段樹,字典樹)資料結構
- 資料結構(樹):二叉樹資料結構二叉樹
- 資料結構-字典樹資料結構
- 資料結構之「樹」資料結構
- 資料結構 - AVL 樹資料結構
- 前端資料結構--樹前端資料結構
- 『資料結構』樹(Tree)資料結構
- 樹結構的應用
- 【資料結構】AVL樹!!!資料結構
- 樹形結構處理
- 資料結構 - 樹,初探資料結構
- 通用-遞迴樹結構遞迴
- 資料結構中樹形結構簡介資料結構
- 樹的學習——樹的儲存結構
- 資料結構之通用樹結構的實現資料結構
- 資料結構-線段樹資料結構
- 資料結構--紅黑樹資料結構
- 資料結構之「B樹」資料結構
- 資料結構之「AVL樹」資料結構
- [譯] Golang 資料結構:樹Golang資料結構
- 資料結構丨字首樹資料結構
- 樹結構與Java實現Java
- 資料結構之「霍夫曼樹」資料結構
- js資料結構--樹(tree)JS資料結構
- 資料結構-佇列-樹資料結構佇列