算法:判定带头结点的循环双链表L是否对称

打印 上一主题 下一主题

主题 996|帖子 996|积分 2988

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
循环双链表的界说: 
  1. typedef int ElemType;
  2. typedef struct DNode
  3. {
  4.         ElemType data;
  5.         struct DNode* prior;
  6.         struct DNode* next;
  7. }DNode, *DLinkList;
复制代码
 代码:
  1. bool Symm(DNode* L)
  2. {
  3.         bool same = true;
  4.         DNode* p = L->next;//指向首结点
  5.         DNode* q = L->prior;//指向尾结点
  6.         while (same)
  7.         {
  8.                 if (p->data != q->data)//数据不相等
  9.                         same = false;
  10.                 else//数据相等
  11.                 {
  12.                         //   奇数         偶数
  13.                         if (p == q || p == q->prior)
  14.                                 break;
  15.                         q = q->prior;//q指针前移
  16.                         p = p->next;//p指针后移
  17.                 }
  18.         }
  19.         return same;
  20. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美丽的神话

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表