資料結構 NOJ014 求廣義表深度

2021-08-20 12:51:08 字數 1109 閱讀 2999

//【資料結構】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 列表可以是乙個遞迴的表,也就是說列表也可以是自身的子表。由於廣義表裡面的資料元素可以具...