zoukankan      html  css  js  c++  java
  • 栈和队列

    P71-4.设单链表的表头指针为L,节点结构有data和next两个域构成,其中data域为字符型。试设计算法判断该链表的全部n个字符是否中心对称。例如xyx,xyyx都是中心对称。

    算法思想:使用栈来判断链表中的数据是否中心对称。
    让链表前一半元素依次进栈。
    在处理链表的后一半元素时,当访问到链表的一个元素后,就从栈中弹出一个元素,两个元素比较,若相等,则将链表中的下一个元素与栈中再弹出的元素比较,直至链表到尾。这时若栈是空栈,则得出链表中心对称的结构;否则,当链表中的一个元素与栈中弹出的元素不等时,结论为链表非中心对称,结束算法执行。
    
    int dc(LinkList L,int n){
        //L是带头结点的n个元素单链表,本算法判断链表是否是中心对称
        int i;
        char s[n/2];    //s字符栈
        p = L->next;    //p是链表的工作指针,指向待处理的当前元素
        for(i=0;i<n/2;i++){      //链表前一半元素进栈
          s[i] = p->data;
          p = p->next;
        } 
        i--;     //恢复最后的i值
        if(n%2==1) p = p->next;
        while(p && s[i] == p->data){   //检测是否中心对称
            i--;        //i充当栈顶指针
            p = p->next;
        }
        if(i==-1)  return 1;//栈为空栈 则链表中心对称
        return 0;  //链表中心不对称
    }
    

    队列

    流转星云
  • 相关阅读:
    web前端【第十四篇】Bootstrap简单使用
    web前端【第十三篇】jQuery扩展和事件
    web前端【第十二篇】jQuery文档相关操作
    web前端【第十一篇】jQuery属性相关操作
    页面组件
    索引
    前端基础
    pymysql与mysql各功能
    mysql数据操作
    mysql表相关操作
  • 原文地址:https://www.cnblogs.com/liuzhuan-xingyun/p/14498862.html
Copyright © 2011-2022 走看看