相信自己,這書就是有毛病
阿新 • • 發佈:2019-01-05
題目源自《資料結構與演算法考研試題精析》 機械工業出版社
C4 演算法設計題 T15
這是我經過修改後的答案:
int Is_Palindrome()
{
LinkList L = (Lnode *)malloc(sizeof(Lnode));
if (!L) exit(-1);
L->next = NULL;
char ch;
int n = 0;//字元個數
Lnode *rear = L;//尾指標,尾插保持原序
while ((ch = getchar()) != '\n')//換行結束輸入
{
Lnode *p = (Lnode *)malloc(sizeof(Lnode));
if (!p) exit(-1);
p->next = rear->next;
rear->next = p;
rear = p;
p->data = ch;
n++;
}
//建立鏈式串完成
char s[100];//字元棧
int i = 0;
Lnode *p = L->next;//遍歷指標
while (i <= n / 2-1)//答案中此處是n/2
{
s[i] = p->data;
p = p->next;
i++;
}
if (n % 2 == 1) p = p->next;//若是奇數個,跳過中間節點
while (p)
{
if (p->data == s[--i]) { p = p->next;}//答案中此處是if(p->data==s[i]) {p=p->next;i--;}
else break;
}
if (!p&&i == 0) return 1;
else return 0;
}
我的意思是 這答案**能信?首先說方法的問題,題目中明確要求不能使用輔助陣列空間,你用一個數組棧是什麼意思,然後你這答案還是錯的,這本書中有很多地方都是這種細小的地方答案錯誤,你這不是讓讀者浪費時間嗎?奇怪為什麼會有那麼多人推薦這本書。而且我問了一個學長,當年就是用的這本書,沒啥問題。我。。。。 難道是想讓我們多思考思考??
我可*你*的吧!!