【发布时间】:2016-04-11 05:52:20
【问题描述】:
尝试使空队列出队时我应该返回什么?
我的教科书告诉我要返回一个表示错误的“键”。
我试过了:
Element queueEmpty()
{
Element elem = {'!'};
printf("Queue is empty");
return elem;
}
但认为这不是一个好的设计,因为'!'不是错误的唯一表示。
(假设任何 char 数据都可以是有效输入)
我的 Queue ADT & dequeue 函数的完整代码:
typedef struct
{
char data;
} Element;
typedef struct Node *nodePtr;
typedef struct Node
{
Element elem;
nodePtr next;
} Node;
nodePtr front[MAX_QUEUES];
nodePtr rear[MAX_QUEUES];
Element dequeue(int i)
{
Element elem;
nodePtr temp = front[i];
if(!front[i])
{
return queueEmpty();
}
elem = temp->elem;
front[i] = temp->next;
free(temp);
return elem;
}
仅供参考:我的教科书是:Horowitz、Sahni、Anderson-Freed 撰写的“C 语言数据结构基础”
【问题讨论】:
-
如果...:'!'不是错误的唯一表示。”,那么也许你知道一些那是。当我们甚至不知道@时,我们怎么知道那会是什么?除非您这么说,否则 987654323@ 是不可接受的?
标签: c error-handling queue