問題描述
序列Z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子序列,相應的遞增下標序列為<2,3,5,7>。
一般地,給定一個序列X=<x1,x2,…,xm>,則另一個序列Z=<z1,z2,…,zk>是X的子序列,是指存在一個嚴格遞增的下標序列〈i1,i2,…,ik〉使得對于所有j=1,2,…,k使Z中第j個元素zj與X中第ij個元素相同。
給定2個序列X和Y,當另一序列Z既是X的子序列又是Y的子序列時,稱Z是序列X和Y的公共子序列。
你的任務是:給定2個序列X、Y,求X和Y的最長公共子序列Z。
標簽:
lt
序列
上傳時間:
2014-01-25
上傳用戶:netwolf
編程題(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