c++ 如何更新这些单向链表的类定义来实现队列?

ykejflvf  于 2022-12-05  发布在  其他
关注(0)|答案(1)|浏览(103)

我想知道如何更新/修改下面的类定义来实现一个队列。哪些类元素或方法会改变?
我正在准备期末考试,这是我在上一次考试中答错的问题之一。我的教授坚持使用这种特定的类结构来实现队列,但是我们没有在课堂上复习过,也没有在教科书中提到。

#include <iostream>
#include <string>

using namespace std;

class StringNode{
private:
  string elem; 
  stringNode* next;

friend class StringLinkedList;
};
//Code fragment 1

class StringLinkedList{
public:
  StringLinkedList(){
   head == NULL;
}
  ~StringLinkedList();{
   while(!empty()){
    removeFront();
 }
}
  bool empty() const{
   return head == NULL;
}
  const string& front() const{
   return head->elem;
}
  void addFront(const string& e); 
  void removeFront();
private: 
  StringNode* head;
};
//Code fragment 2
wz3gfoph

wz3gfoph1#

访问一个单链表的尾部是一个O(n)的操作。* 除非 * 实现被正确地封装,并且列表的内部结构不能被直接操纵,在这种情况下,实现可以安全地跟踪列表的尾部节点,允许对尾部的操作是O(1)的。

相关问题