博客作業05-查找
阿新 • • 發佈:2018-05-27
pro 時間復雜度 技術分享 repr err fin 技術 arch 元素
一、學習總結
1、查找結構思維導圖
2、查找結構學習心得體會
通過對查找結構的學習,知道了三大種不同種類的查找結構,他們之間的查找成功的ASL不同,時間復雜度也不同,在對不同的結構進行查找時候用的方法也不同
二、PTA實驗作業
題目一、是否二叉搜索樹
1、設計思路
bool IsBST(BinTree T){ 如果T為空,直接返回真; 用中序遍歷遍歷整個二叉樹,判斷該序列是否為遞增序列,若是,返回1,不是則返回0; 將該值傳給b,b為1返回true;b為0返回false;}
2、代碼截圖
3、PTA提交列表
判斷條件錯誤寫成a[j]>=a[j],通過修改判斷條件改正這個錯誤
有兩個測試點沒有通過,沒有將a[100]和i作為全局變量
題目二、二叉搜索樹中的最近公共祖先
1、設計思路
int LCA( Tree T, int u, int v ){ 若T為空,返回EORROR; 若為統一子樹,返回這一節點的值 若u>T的值和v<T的值)或(u<T的值和v>T的值) 返回這一節點的值; 若u>T的值 遞歸其左子樹繼續運算 若u<T的值 遞歸其右子樹繼續運算 }
2、代碼截圖
3、PTA提交列表
一開始考慮的條件不夠全面,兩結點是兄弟節點沒有考慮到
題目三、QQ帳戶的申請與登陸
1、設計思路
輸入個數
輸入命令,qq號碼和密碼;
判斷{
如果是新賬戶,若賬戶存在,error;
否則 存入信息;
如果是老用戶,輸入賬戶密碼
若 error ,跳出;
否則 成功}
2、代碼截圖
3、PTA提交內容
一開始考慮的情況不全面
3.截圖本周題目集的PTA最後排名
總分:2分;
4、閱讀代碼
#include <stdio.h> #define MAXL 100 typedef int KeyType; typedef char InfoType[10]; typedef struct{ KeyType key; //KeyType為關鍵字的數據類型 InfoType data; //其他數據 } NodeType; typedef NodeType SeqList[MAXL]; //順序表類型 int BinSearch1(SeqList R,int low,int high,KeyType k) { int mid; if (low<=high) //查找區間存在一個及以上元素 { mid=(low+high)/2; //求中間位置 if (R[mid].key==k) //查找成功返回其邏輯序號mid+1 return mid+1; if (R[mid].key>k) //在R[low..mid-1]中遞歸查找 BinSearch1(R,low,mid-1,k); else //在R[mid+1..high]中遞歸查找 BinSearch1(R,mid+1,high,k); } else return 0; } int main() { int i,n=10; int result; SeqList R; KeyType a[]= {1,3,9,12,32,41,45,62,75,77},x=75; for (i=0; i<n; i++) R[i].key=a[i]; result = BinSearch1(R,0,n-1,x); if(result>0) printf("序列中第 %d 個是 %d\n",result, x); else printf("木有找到!\n"); return 0; }
這次的閱讀代碼是折半查找的遞歸法
博客作業05-查找