廣義表的建立與基本操作(10分)

2021-09-29 21:07:10 字數 1432 閱讀 8579

成績 10 開啟時間 2023年11月8日 星期五 18:00

折扣 0.8 折扣時間 2023年11月28日 星期四 23:55

允許遲交 是 關閉時間 2023年12月8日 星期日 23:55

採用"頭尾法儲存廣義表,實現以下廣義表的操作:

1.status createglist( glist &l, char *s ) // 根據字串 s 表示的廣義表內容建立廣義表資料結構;

2.glist gethead( glist l) // 取表頭運算

3.glist gettail( glist l) // 取表尾運算

4.void destroyglist( glist &l) // 銷毀廣義表 l

5.void printglist( glist l) // 顯示廣義表 l 內容

程式執行時,首先輸入乙個廣義表,表中的原子是小寫字母。隨後可以交替輸入取表頭或取表尾指令(分

別用 1 和 2 表示),取的結果替代當前廣義表,並釋放相應的資源(需將釋放資源資訊輸出)。當廣義表

是空或是原子時,程式停止執行。

例:(下面的黑體為輸入)

((a,()),c,d)

generic list: ((a,()),c,d)

1

destroy tail

free list node

generic list: (a,())

2

free head node

free list node

generic list: (())

1

destroy tail

free list node

generic list: ()

這題比較簡單,只需要判斷輸入是1還是2,輸出對應的文字,然後通過從前到後的逐個判斷,擷取儲存在陣列中的廣義表的對應部分,然後輸出。判斷的時候注意表頭是原子和表頭是廣義表兩種情況,以及括號的消除和輸出。

#include

#include

intmain()

}}printf

("%s\n"

, map);}

}else

//order==2

else}}

for(i; i < len -

1; i++

, count++

) map[count]

= temp[i]

; map[count++]=

')';

map[count]

='\0'

;printf

("%s\n"

, map);}

}}return0;

}

8 廣義表的建立與基本操作

採用 頭尾法 儲存廣義表,實現以下廣義表的操作 1 status createglist glist l,char s 根據字串 s 表示的廣義表內容建立廣義表資料結構 2 glist gethead glist l 取表頭運算 3 glist gettail glist l 取表尾運算 4 voi...

廣義表操作 建立廣義表,判斷廣義表是否相等

建立廣義表 演算法思路 從字串行中分離出左部,右部,依次為左部和右部建立儲存 char s 61 設字串行長度不超過60 eg a,b c d,e,f g a i b int sever int a,int b i while k 0 s i i b return i eg a,b c d,e,f ...

廣義表的建立與列印

廣義表的建立與列印 本文取自 資料結構與演算法 c語言版 第三版 出版社是清華大學出版社。本博文作為學習資料整理。源 是vc 6.0上可執行程式,我挪到了vs2010中執行。在vs2010中新建c win32 控制台應用程式專案,建立結果截圖 1.廣義表的建立 廣義表的儲存結構示意圖 示例 c x,...