公务员考试网 发表于 2017-4-12 21:54:57

2015年国家电网考试备考:计算机之数据结构与算法(二)

2015年国家电网考试备考:计算机之数据结构与算法(二)
今天我们推荐的知识点是:电气工程类——计算机之数据结构与算法之队列、链表,详情请查看原文。关注华图网校国家电网考试频道,我们会第一时间发布国家电网考试信息!更多2015年国家电网备考资料,尽在国家电网考试频道(http://v.huatu.com/dianwang/)
    3.队列 (Queue)
    一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列中没有元素时,称为空队列。
    顺序队列
    空队时指针(下标)front和rear在一起都指向队前方,当有元素进队,则rear后移;有元
    素出队,则front后移,最后,开始时分配给队的前端不再被利用。
    为了充分利用队列,顺序队列总是做成一个逻辑上的循环队列。

注意:空队时rear等于front,满队时必须空一个位置。
    顺序循环队列类模板
    templateclass Queue
    {
    int rear,front; //队尾与队头下标
    T *elements; //存放队列元素的容器
    int maxSize; //队列最多可容纳元素个数+1
    public:
    Queue(int ms=18);
    ~Queue()
    {
    delete[] elements;
    }
    bool IsEmpty() const //判队空
    {
    return front==rear;
    }
    bool IsFull() const //判队满
    {
    return (rear+1)%maxSize==front;
    }
    int Length() const //求队中元素数,注意求余算法
    {
    return (rear-front+maxSize)%maxSize;
    }
    void EnQue(const T &data); //进队
    T DeQue(); //出队
    T GetFront(); //取队头数据
    void MakeEmpty()//队置空(初始态)
    {
    front=rear=0;
    }
    };

sydwfive 发表于 2017-4-12 22:58:16


    4.链表 (Linked List)
    是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
    基本操作(pascal语言)
    建立
    第一行读入n,表示n个数
    第二行包括n个数
    以链表的形式存储输出这些数


在以z为头的链表中搜索第一个n,如果找到则删去,返回值为1,否则返回0

查找
    类似于删除,只需要找到不删即可
    插入
    插入,在以zz为头的链表第w个的前面插入nn元素,函数返回值正常是0,如果w超过了链表的长度,函数返回链表的长度
页: [1]
查看完整版本: 2015年国家电网考试备考:计算机之数据结构与算法(二)