队列

  1 #include<iostream>
  2 
  3 using namespace std;
  4 
  5 typedef int QueueElement;
  6 
  7 struct Node
  8 
  9 {
 10 
 11  Node *next;
 12 
 13  QueueElement data;
 14 
 15  Node(QueueElement value, Node *link = NULL) :data(value), next(link){}
 16 
 17 };
 18 
 19 class Queue
 20 
 21 {
 22 
 23 public:
 24 
 25      Queue() :myFront(NULL),myBack(NULL) {}
 26 
 27      ~Queue()
 28 
 29     {
 30 
 31          Nodeptr ptr = myFront, nextptr;
 32 
 33          while (ptr != 0)
 34 
 35          {
 36 
 37                nextptr = ptr->next;
 38 
 39        delete ptr;
 40 
 41        ptr = nextptr;
 42 
 43      }
 44 
 45    }
 46 
 47  
 48 
 49  Queue(const Queue& original)
 50 
 51  {
 52 
 53    myFront = myBack = 0;
 54 
 55    if (!original.empty())
 56 
 57    {
 58 
 59      myFront=myBack= new Node(original.Front());
 60 
 61      Nodeptr origPtr = original.myFront->next;
 62 
 63      while (origPtr != 0)
 64 
 65      {
 66 
 67        myBack->next = new Node(origPtr->data);
 68 
 69        myBack = myBack->next;
 70 
 71        origPtr = origPtr->next;
 72 
 73      }
 74 
 75    }
 76 
 77  }
 78 
 79  
 80 
 81  Queue& operator=(const Queue& rhs)
 82 
 83  {
 84 
 85    if (this != &rhs)
 86 
 87    {
 88 
 89      this->~Queue();
 90 
 91      if (rhs.empty())
 92 
 93      myFront = myBack = 0;
 94 
 95      else
 96 
 97      {
 98 
 99        myFront = myBack = new Node(rhs.Front());
100 
101        Nodeptr rhsPtr = rhs.myFront->next;
102 
103        while (rhsPtr != 0)
104 
105        {
106 
107          myBack->next = new Node(rhsPtr->data);
108 
109          myBack = myBack->next;
110 
111          rhsPtr = rhsPtr->next;
112 
113        }
114 
115      }
116 
117    }
118 
119      return *this;
120 
121  }
122 
123  
124 
125  QueueElement Front() const
126 
127  {
128 
129      if (!empty())
130 
131      {
132 
133        return (myFront->data);
134 
135      }
136 
137      else
138 
139      {
140 
141        cout << "The Stack is empty!" << endl;
142 
143      }
144 
145  }
146 
147  
148 
149  bool empty() const
150 
151  {
152 
153      return myFront == 0;
154 
155  }
156 
157  void enqueue(const QueueElement& value)
158 
159  {
160 
161      Nodeptr newptr= new Node(value);
162 
163      if (empty())
164 
165      {
166 
167        myFront = myBack = newptr;
168 
169      }
170 
171      else
172 
173      {
174 
175        myBack->next = newptr;
176 
177        myBack = newptr;
178 
179      }
180 
181  }
182 
183  
184 
185  void Display()
186 
187  {
188 
189        Nodeptr ptr;
190 
191        for (ptr = myFront; ptr != 0; ptr = ptr->next)
192 
193        cout << ptr->data << " ";
194 
195        cout << endl;
196 
197  }
198 
199  void dequeue()
200 
201  {
202 
203      if (!empty())
204 
205      {
206 
207        Nodeptr ptr = myFront;
208 
209        myFront = myFront->next;
210 
211        delete ptr;
212 
213        if (myFront == 0)
214 
215        myBack == 0;
216 
217      }
218 
219      else
220 
221      {
222 
223        cout << "Stack is empty" << endl;
224 
225      }
226 
227  }
228 
229  private:
230 
231  typedef Node* Nodeptr;
232 
233  Nodeptr myFront;
234 
235  Nodeptr myBack;
236 
237  };
238 
239  void main()
240 
241  {
242 
243      Queue s;
244 
245      cout<<s.empty()<<endl;
246 
247      for (QueueElement i = 1; i < 6; ++i)
248 
249      {
250 
251           s.enqueue(i);
252 
253      }
254 
255      cout << s.empty() << endl;
256 
257      cout << s.Front() << endl;
258 
259      s.Display();
260 
261      s.dequeue();
262 
263  
264 
265      s.Display();
266 
267      Queue s1;
268 
269      s1 = s;
270 
271      s.Display();
272 
273      Queue s2(s);
274 
275      s2.Display();
276 
277      system("pause");
278 
279  }

 

转载于:https://www.cnblogs.com/yuanshuang/p/5361232.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值