当前位置: 首页 > news >正文

wordpress下载网站模板企业网络设计方案预算

wordpress下载网站模板,企业网络设计方案预算,网站空间怎么进,快速网站seo效果手写一个简单版本的list 设计一个名为 List 的 List 类#xff0c;该类具有以下功能和特性#xff1a; 1、基础成员函数 构造函数#xff1a;初始化 List 实例析构函数#xff1a;清理资源#xff0c;确保无内存泄露 2、核心功能 在 List 末尾添加元素在 List 开头添…手写一个简单版本的list 设计一个名为 List 的 List 类该类具有以下功能和特性 1、基础成员函数 构造函数初始化 List 实例析构函数清理资源确保无内存泄露 2、核心功能 在 List 末尾添加元素在 List 开头添加元素获取 List 中节点的数量删除 List 末尾的元素删除 List 开头的元素删除 List 中指定值的节点 3、迭代与遍历 打印链表中的元素 4、辅助功能 重载[]运算符以对链表进行索引访问重载运算符以打印链表 输入描述 题目的包含多行输入第一行为正整数 N, 代表后续有 N 行命令序列。 接下来 N 行每行包含一个命令命令格式为 [operation] [parameters] 具体命令如下 push_back 命令 格式push_back [value]功能在链表末尾添加值为 value 的元素 push_front 命令 格式push_front [value]功能在链表开头添加值为 value 的元素 pop_back 命令 格式pop_back功能删除链表末尾的元素 pop_front 命令 格式pop_front功能删除链表开头的元素 remove 命令 格式remove [value]功能删除链表中值为 value 的元素 clear 命令 格式clear功能清空链表 size 命令 格式size功能获取链表中节点的数量 get 命令 格式get [index]功能获取链表中索引为 index 的节点的值 print 命令 格式print功能打印链表中的元素 输出描述 输出为每行命令执行后的结果具体输出格式如下 **push_back 命令**无输出 **push_front 命令**无输出 **pop_back 命令**无输出 **pop_front 命令**无输出 **remove 命令**无输出 **clear 命令**无输出 **size 命令**输出一个整数独占一行代表当前 List 中元素的数量 **get 命令**输出一个整数独占一行代表 List 中索引为 index 的元素如果索引无效则输出 -1 **print 命令**按照顺序打印当前 List 包含的所有元素每个元素后都跟一个空格打印结果独占一行如果当前的 vector 为空则打印 empty #include iostream #include stdexcept #include iostream #include algorithm #include sstream #include string using namespace std; template typename T class List { public:templatetypename Lfriend ostream operator(ostream os, const ListL pt); private://定义链表结点struct Node{T data;Node* next;Node* prev;//含参的默认构造函数Node(const Tvalue, Node* nextNode nullptr,Node* prevNode nullptr){data value;next nextNode;prev prevNode;}};//头尾结点指针Node* head;Node* tail;//结点数量size_t size;public:List(){head NULL;tail NULL;size 0;}~List(){clear();//把链表空间释放}//前插void push_front(const T value){//创造新节点next指向的是headNode* newNode new Node(value, head, NULL);if (head ! NULL)//如果链表非空{head-prev newNode;}else{//如果链表是空的则首尾都要指向这个独苗tail newNode;}head newNode;//头结点前移size;}//尾插void push_back(const T value){Node* newNode new Node(value, NULL, tail);if (tail ! NULL)tail-next newNode;elsehead newNode;tail newNode;//尾结点后移size;//链表长度加1}size_t getSize() const{return size;}//访问:循环index次然后返回当前结点的值即可T operator[](size_t index){Node* cur head;//head相当于是下标为0的元素while (index--){if (cur NULL)throw out_of_range(index out of range);cur cur-next;}return cur-data;}const T operator[](size_t index) const{Node* cur head;//head相当于是下标为0的元素while (index--){if (cur NULL)throw out_of_range(index out of range);cur cur-next;}return cur-data;}//删除链表末尾元素// 首先直接获取尾结点的前一个结点// 然后尾结点prev指向null,然后尾结点前移// 最后将新尾结点的next指向nullsize--//void pop_back()//{// if (tail NULL)// cout empty endl;// else// {// Node* tailPre tail-prev;//tailPre可能为空// tail-prev NULL;// tail tailPre;// if (tail)// tail-next NULL;// else// head NULL;// size--;// } //}//标准(此方法更好释放了tail的内存没有造成内存遗失)void pop_back(){if (size 0){Node* newTail tail-prev;//直接把尾结点删了简单粗暴。//结点delete之后它的prev和next指针都自动消失了delete tail;//虽然空间没了但是Node*tail这个指针本身还在健在的tailnewTail;if (tail)tail-next NULL;elsehead NULL;size--;}}void pop_front(){if (size 0){Node* newHead head-next;delete head;head newHead;if (head)head-prev NULL;elsetail NULL;size--;}}Node* getNode(const T val){//遍历,用whileNode* node head;while (node!NULL){if (node-val val)return node;node node-next;}return NULL;}//删除结点void remove(const T val){Node* node head;while (node ! NULL){if (node-data val){if (node head node tail){node NULL;}else if (node head){head head-next;head-prev NULL;}else if (node tail){tail tail-prev;tail-next NULL;}else{node-prev-next node-next;node-next-prev node-prev;}size--;}node node-next;}}bool empty(){return size 0;}void clear(){//每次都设置一个指针指向要被删除的元素while (head!NULL){Node* node head;//从头开始head head-next;//头不断后移delete node;}tail NULL;size 0;}Node* begin(){return head;}Node* end(){return NULL;}void printElements() const{Node* node head;while (node ! NULL){cout node-data ;node node-next;}cout endl;}};//重载运算符 templatetypename T ostream operator(ostream os, const ListT pt) {for (typename ListT::Node* cur pt.head; cur ! NULL; cur cur-next){os cur-data ;}os endl;return os; }int main() {// 创建一个 List 对象Listint myList;int N;std::cin N;// 读走回车getchar();std::string line;// 接收命令for (int i 0; i N; i) {std::getline(std::cin, line);std::istringstream iss(line);std::string command;iss command;int value;if (command push_back) {iss value;myList.push_back(value);}if (command push_front) {iss value;myList.push_front(value);}if (command pop_back) {myList.pop_back();}if (command pop_front) {myList.pop_front();}if (command remove) {iss value;myList.remove(value);}if (command clear) {myList.clear();}if (command size) {std::cout myList.getSize() std::endl;}if (command get) {iss value;std::cout myList[value] std::endl;}if (command print) {if (myList.getSize() 0) {std::cout empty std::endl;}else {myList.printElements();}}}return 0; }
http://www.ho-use.cn/article/10819074.html

相关文章:

  • 如何创建私人网站山西省建筑工程网
  • 免费网站的软件下载html写手机网站吗
  • 企业网站效果图产品策划方案怎么做
  • 网站建设shopify广州免费建站找哪家
  • ip动态地址做网站源码下载工具
  • 怎么区分网站是模板做的网上推广购物平台怎么推广好
  • 微商城网站建设哪家好网页设计公司官网功能图
  • 建设信用卡积分兑换商城网站京东关键词优化技巧
  • 科技企业网站建设模板wordpress竞争
  • 怎样进入国外网站提高审美网站
  • 滁州市建设工程质量检测协会网站昆山做网站的个人
  • 中华建设杂志网站中国空间站什么时候建成
  • 泸州网站开发公司怎样在百度上打广告
  • 可以自学网站开发ui设计培训排名
  • 网站源码提取网站建设流程图visio
  • 重视企业网站九江市建设项目服务中心
  • 电脑建立网站二次开发收费需要高点
  • 营销网站建设工作建筑工程培训
  • 求网站建设和网页设计的电子书专业的营销型网站
  • 国家建设工程注册管理中心网站wordpress的运行环境
  • 企业网站源码变现方法WordPress外贸企业站主题
  • 花钱做推广广告哪个网站好网页制作报价模板
  • 采集电影做的网站做网站建设销售
  • 网站制作与网页建设想找一家公司设计网站
  • 做网站经费免费看舆情网站
  • 阎良网站建设注册了域名怎么添加到自己的网站
  • 农村服务建设有限公司网站横沥做网站
  • 企业做的网站推广方案的步骤北京小程序开发平台
  • 机械网站案例丽水做企业网站的公司
  • 怎么开免费网站DW怎么做网站下拉菜单