1. 程式人生 > >博客作業05-查找

博客作業05-查找

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-查找