新疆备考技巧

首页 > 新疆事业单位考试 > 备考技巧

2020新疆事业单:计算机之数据结构与算法(5)

新疆华图 | 2020-02-10 19:35

收藏

  顺序队列

  空队时指针(下标)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;

  }

  };

  4.链表 (Linked List)

  是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

  基本操作(pascal语言)

  建立

  第一行读入n,表示n个数

  第二行包括n个数

  以链表的形式存储输出这些数

分享到

微信咨询

微信中长按识别二维码 咨询客服

全部资讯

copyright ©2006-2020 华图教育版权所有