6-1 另類迴圈佇列 (20 分)
如果用乙個迴圈陣列表示佇列,並且只設佇列頭指標front,不設尾指標rear,而是另設count記錄佇列中元素個數。請編寫演算法實現佇列的入隊和出隊操作。
函式介面定義:
bool addq( queue q, elementtype x );
elementtype deleteq( queue q );
其中queue結構定義如下:
typedef int position;
typedef struct qnode *ptrtoqnode;
struct qnode ;
typedef ptrtoqnode queue;
注意:如果佇列已滿,addq函式必須輸出「queue full」並且返回false;如果佇列是空的,則deleteq函式必須輸出「queue empty」,並且返回error。
裁判測試程式樣例:
#include
#include
#define error -1
typedef int elementtype;
typedef enum operation;
typedef enum bool;
typedef int position;
typedef struct qnode *ptrtoqnode;
struct qnode ;
typedef ptrtoqnode queue;
queue createqueue( int maxsize )
bool addq( queue q, elementtype x );
elementtype deleteq( queue q );
operation getop(); /* 裁判實現,細節不表 */
int main()
}return 0;/* 你的**將被嵌在這裡 */
輸入樣例:
4del
add 5
add 4
add 3
deldel
add 2
add 1
add 0
add 10
end輸出樣例:
queue empty
5 is out
4 is out
queue full
3 2 1 0
**如下
bool addq( queue q, elementtype x )
q->count++;
q->data[(q->front+q->count)%q->maxsize] = x;
return true;
}elementtype deleteq( queue q )
q->count--;
q->front = (q->front+1)%q->maxsize;
return q->data[q->front];
}
6-2 字串 - 6. 查詢子串(bf演算法)* (20 分)
c語言標準函式庫中包括 strstr 函式,在主串中查詢子串。作為練習,我們自己編寫乙個功能與之相同的函式。
函式原型
// 查詢子串
char* strstr(const char *txt, const char *pat);
說明:txt 和 pat 分別為主串和子串的起始位址。若查詢成功,則函式值為子串在主串中首次出現的起始位址,否則函式值為null。
特別地,我們對c語言庫函式strstr進行適當修改:若子串為空串,則沒有意義,函式值規定為null。
裁判程式
#include
// 查詢子串
char* strstr(const char *txt, const char *pat);
int main()
else
return 0;
}/* 你提交的**將被嵌在這裡 */
輸入樣例1
this is a pencil
is輸出樣例1
2輸入樣例2
this is a pencil
be輸出樣例2
null
**如下
char* strstr(const char *txt, const char *pat)
讀書 系統之美 第三章 第四章
適應力是指系統在多變的環境中保持自身存在和運作的能力。與適應力相對的是脆弱性或剛性。系統之所以會有適應力,是因為系統內部結構存在很多相互影響的反饋迴路,正是這些迴路相互支撐,即使在系統遭受巨大的擾動時,仍然能夠以多種不同的方式使系統恢復至原有狀態。適應力總是有限度的。有適應力的系統可能是經常動態變化...
第三章 單一責任原則 第四章 開放封閉原則
單一責任 srp 就是乙個類而言,應該僅有乙個引起它變化的原因。不知道是不是有機會用qt 作乙個俄羅斯方塊的遊戲 邏輯和介面分離是乙個很重要的原則。如果乙個類承擔的責任過多,就等於把這些責任耦合在乙個,乙個指責的變化可能會削弱或者抑制這個類完成其他責任的能力,這種耦合會導致脆弱的設計,當變化發生時,...
ps第三章及第四章第一節
3.2色階 色階命令通過調整影象的陰影,中間調和高光的強度級別,從而校正影象的明暗 和色彩 曲線 曲線命令可以調整影象的整個色調範圍內的點,也即可以將任何輸入 原圖 變換為任意的輸出 調整修改結果 可以在色戒或曲線中選擇任意乙個單獨的通道進行調整。注意 如果需要調整多個通道的色階或曲線,需要先在通道...