上下文無關文法(Context-Free Grammar, CFG)是一個4元組G=(V, T, S, P),其中,V和T是不相交的有限集,S∈V,P是一組有限的產生式規則集,形如A→α,其中A∈V,且α∈(V∪T)*。V的元素稱為非終結符,T的元素稱為終結符,S是一個特殊的非終結符,稱為文法開始符。
設G=(V, T, S, P)是一個CFG,則G產生的語言是所有可由G產生的字符串組成的集合,即L(G)={x∈T* | Sx}。一個語言L是上下文無關語言(Context-Free Language, CFL),當且僅當存在一個CFG G,使得L=L(G)。 *⇒
例如,設文法G:S→AB
A→aA|a
B→bB|b
則L(G)={a^nb^m | n,m>=1}
其中非終結符都是大寫字母,開始符都是S,終結符都是小寫字母。
標簽:
Context-Free
Grammar
CFG
上傳時間:
2013-12-10
上傳用戶:gaojiao1999
編程題(15_01.c)
結構
struct student
{
long num
char name[20]
int score
struct student *next
}
鏈表練習:
(1).編寫函數struct student * creat(int n),創建一個按學號升序排列的新鏈表,每個鏈表中的結點中
的學號、成績由鍵盤輸入,一共n個節點。
(2).編寫函數void print(struct student *head),輸出鏈表,格式每行一個結點,包括學號,姓名,分數。
(3).編寫函數struct student * merge(struct student *a,struct student *b), 將已知的a,b兩個鏈表
按學號升序合并,若學號相同則保留成績高的結點。
(4).編寫函數struct student * del(struct student *a,struct student *b),從a鏈表中刪除b鏈表中有
相同學號的那些結點。
(5).編寫main函數,調用函數creat建立2個鏈表a,b,用print輸出倆個鏈表;調用函數merge升序合并2個
鏈表,并輸出結果;調用函數del實現a-b,并輸出結果。
a:
20304,xxxx,75,
20311,yyyy,89
20303,zzzz,62
20307,aaaa,87
20320,bbbb,79
b:
20302,dddd,65
20301,cccc,99
20311,yyyy,87
20323,kkkk,88
20307,aaaa,92
20322,pppp,83
標簽:
student
struct
score
long
上傳時間:
2016-04-13
上傳用戶:zxc23456789