成績 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,...