bool Symm(DLinkNode *L) { bool same=true; DLinkNode *p=L->next; DLinkNode *q=L->prior; while(same) { if(p->data!=q->data) same=false; else { if(p==q||p==q->prior) break; q=q->prior; p=p->next; } } return same; } 的主函数该怎么写
时间: 2023-10-15 22:08:11 浏览: 80
opencv中Mat、CvMat、IplImage、IplImage*之间转换程序
4星 · 用户满意度95%
以下是一个简单的主函数示例,可以用来测试上述`Symm()`函数:
```
int main() {
// 创建一个双向链表
DLinkNode *L = new DLinkNode;
L->next = NULL;
L->prior = NULL;
DLinkNode *p = L;
for (int i = 1; i <= 5; i++) {
DLinkNode *newNode = new DLinkNode;
newNode->data = i;
newNode->prior = p;
newNode->next = NULL;
p->next = newNode;
p = newNode;
}
p = L->next;
while (p) {
if (p->next) {
p->next->prior = p;
}
p = p->next;
}
// 调用 Symm() 函数判断是否为对称链表
bool isSymm = Symm(L);
if (isSymm) {
cout << "该链表是对称链表" << endl;
} else {
cout << "该链表不是对称链表" << endl;
}
// 释放链表内存
p = L->next;
while (p) {
DLinkNode *temp = p;
p = p->next;
delete temp;
}
delete L;
return 0;
}
```
该主函数创建了一个包含五个节点的双向链表,然后调用`Symm()`函数判断该链表是否为对称链表,并输出结果。最后释放链表内存。你可以根据需要修改节点数和节点值来进行测试。
阅读全文