原创 【數據結構】-樹-求樹中雙分支節點的個數

思路: 1.非遞歸算法:隨便搞個遍歷算法,分別判斷每個節點的左右孩子是否不爲空,設置一個計數器來記錄數據 2.遞歸算法: 如果p節點的左右孩子都沒有:以p爲根的樹的雙分支節點個數爲0 如果 p節點的左右孩子都有:以p爲根的樹的雙分支節點個

原创 【數據結構】-樹-交換每個節點的左右孩子

遞歸-後序交換每個節點的左右孩子 代碼: void swap_child(BiTree &T) { if (T) { swap_child(T->lchild); swap_child(T->rchild); BiTNod

原创 【數據結構】-樹-先序遍歷中第k個節點的值

非遞歸算法:設置計數器 遞歸算法的路徑如下圖所示:    char find_pre_k(BiTree T,int k) { stack<BiTree> s; BiTNode* p = T; int count = 0;

原创 【數據結構】-樹-判斷一棵樹是否是完全二叉樹

思路:層次遍歷,空節點也入隊,遍歷的時候如果遇到空節點時,判斷後序節點是否有非空節點,如果有就說明是非完全二叉樹。 void Judg_WangquanTree(BiTree T) { queue<BiTNode*> Q; BiTN

原创 【數據結構】-樹-判斷二叉樹是否爲平衡二叉樹(後序遞歸)

思路: 設置一個balance標記(0表示平衡,1表示不平衡) 設置高度height(用於判斷平衡的標準) 1.若樹爲空 ,高度爲0,balance爲1 2.若樹無左右子,高度爲1,baance爲1 3.出去以上兩種遞歸出口,剩下的就需要

原创 【數據結構】-樹-求二叉樹的高度(層次遍歷)

非遞歸算法:  int Height_Tree(BiTree T) { BiTNode* Q[100];//用數組做隊列 int front = -1;//當前訪問的節點 int rear = -1;//下一層新加入的節點 i

原创 【數據結構】-樹-先序線索二叉樹,中序線索二叉樹,後序線索二叉樹之間的對比

先序線索二叉樹,中序線索二叉樹,後序線索二叉樹之間的對比 結論: 1.先序線索二叉樹找前驅節點困難,找後繼節點簡單   後序線索二叉樹找後繼節點困難,找前驅節點簡單   中序線索二叉樹找前驅節點,後繼節點都很簡單 2.遍歷中序和先序線索二

原创 大學生角度_LeapMotion結合Unity開發體感遊戲_01

       壓力山大,第一次自己帶兩三個組員搞項目,啥都不懂,完全小白。找遍了網上所有的教程,內心深深的無力感,對一個大二啥都不會的菇涼來說,缺乏系統性的教程,也沒有前輩指導,過程真的很艱難。爲了讓自己不輕易放棄,所以決定記錄下來。  

原创 【數據結構】-棧--中綴表達式轉後綴表達式-表達式求值

  typedef struct mystk { char stack[10]; int top = -1; }mystk;//中綴轉後綴時放操作符的棧 typedef struct hisstk { int stack[10

原创 【數據結構】-棧-實現共享棧

共享棧:兩個棧面對面增長 第一個棧空:top[0]=-1 第二個棧空:top[1]=maxsize 共享棧滿:top[0]+1=top[1]  #define maxsize 5; typedef struct stk { int

原创 【數據結構】-單鏈表-單鏈表遞增排序

直接插入法排序單鏈表 舊的單鏈表要標記當前節點和下一個要處理的節點 新的單鏈表要找到插入位置的前一個節點和後一個節點 typedef struct LNode{ int data; struct LNode *next; }LNo

原创 【數據結構】-棧-單鏈表是否對稱

 需要分奇數偶數討論 前一半輸出放入棧中(用數組實現) 後一半繼續由指針遍歷 typedef struct Lnode { char data; struct Lnode* next; }Lnode, *Linklist; Li

原创 【數據結構】-樹-兩個節點的最近祖先點

一.線性存儲方式  誰的父節點編號更大,誰就繼續向上求一個父節點       char FindNearParent(vector<char> a,int i,int j) { if (a[i] != '#' && a[j] !=

原创 【數據結構】-單鏈表-求兩個單鏈表的公共節點

typedef struct LNode{ int data; struct LNode *next; }LNode, *LinkList; /*鏈表*/ LinkList List_TailInsert(LinkList L

原创 【數據結構】-線性表-尋找兩個等長升序序列的中位數

 思路: 比較兩個序列的中位數 若相等,直接返回該值 不相等,截取中位數有可能存在的兩段合成一個新的序列,一直到每個子序列的長度爲1 s:起點,d:終點,m:中點,截取的規則如下: 爲偶數時,爲了保證截取掉的序列一樣長,有兩種截取方式,