//【資料結構】noj014 求廣義表深度
//表頭-表尾表示法
#include #include #include #include //廣義表定義
typedef char atomtype;
typedef enumnodetag; //列舉型別
typedef struct glnode //乙個表結點
ptr;
};}glnode,*glist;
bool create(glist *l,char *s); //根據輸入字串s,建立廣義表
int getdepthbyhp(glist l); //按表頭-表尾分析方法求表深
void server(char *s1,char *s); //分離s為s1頭字串與s尾字串
void substr(char *s,char *s1,int start,int len); //複製字串
bool create(glist *l,char *s)
else //表結點
else //表尾空
}while((*s)!='\0');}}
return true;
}int getdepthbyhp(glist l)
{ int max=0,depth;
glist p;
if(!l)return 1; //空表深度1
else if(l->tag==atom)return 0; //原子深度0
for(p=l;p;p=p->ptr.tp) //遍歷表頭深度,至表尾為空
{depth=getdepthbyhp(p->ptr.hp); //獲取表頭深度
if(max【後記】
1.表頭-表尾表示法反覆看了很久才搞明白,這道題也完全沒思路,於是去抄網上**,改了改別人的**就能過,自己抄別人**就過不了,挫敗感十分強烈。下午重新自己寫了一遍,發現bug在於手殘把所有l->tag寫成了l->atom。。。emmm可以說是非常愚蠢了。脫括號那裡也想了許久才想明白。
2.題目要求「分別用表頭、表尾分析法輸出深度」,然而上網找了許久都只有一種深度求法。
NOJ 求廣義表深度 西工大資料結構
我是 電腦科學與技術 專業的一名在校本科生,這是我的第一篇博文,用詞不當還請各位看官多多包涵。這篇博文是關於西北工業大學noj資料結構習題中的 求廣義表深度 的思路實現與除錯心得,如有錯誤或紕漏歡迎各位大佬指正。題目如下 讀題之後,第一反應是與之前做過的一道 表示式括號匹配 題目類似,似乎可以用 棧...
資料結構 廣義表
廣義表 lists,又稱列表 是一種非線性的 資料結構 是線性表 的一種推廣。即廣義表中放鬆對錶元素的原子限制,容許它們具有其自身結構。思想 廣義表就類似下圖的結構,他的大體 下圖第一行 相當於乙個帶頭結點的鍊錶,思想,首先要有乙個頭結點為head型別,每乙個廣義表有且只有乙個head,而後每個節點...
資料結構 廣義表
概念 陣列和廣義表可以看成是線性表在下述含義上的擴充套件,表中資料元素本身也是乙個資料結構。廣義表也可以看作是線性表的推廣。1 廣義表的元素可以是子表,而子表的元素還可以包含子表。2 列表可以被其他列表所共享。3 列表可以是乙個遞迴的表,也就是說列表也可以是自身的子表。由於廣義表裡面的資料元素可以具...