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

成都 网站建设培训网页制作与设计教程

成都 网站建设培训,网页制作与设计教程,网络公司要求做网站工商网监,wordpress返回上一页插件嗨嗨嗨,我又来更新这个系列了,很久没更新了。让我们看一看有那些有趣的题目: 题目一: 1.以单链表作为存储结构,实现线性表的就地逆置(提示,就地逆置:在不使用额外的数据结构或空间…

嗨嗨嗨,我又来更新这个系列了,很久没更新了。让我们看一看有那些有趣的题目:

题目一:

1.以单链表作为存储结构,实现线性表的就地逆置(提示,就地逆置:在不使用额外的数据结构或空间的情况下,将单链表中的节点顺序反转,使得原本指向下一个节点的指针指向了前一个节点。完成这一操作后,链表的第一个数据元素变为最后一个数据元素,而最后一个数据元素则成为第一个数据元素)。

2. 创建一个非递减序(有重复值)的单链表,实现删除值相同的多余结点。

#include <iostream>
using namespace std;// 定义链表节点结构体
struct ListNode {int data;ListNode* next;ListNode(int val) : data(val), next(nullptr) {}
};// 单链表类
class LinkedList {
public:LinkedList() : head(nullptr) {}// 插入节点以保持非递减序void insertInOrder(int val) {ListNode* newNode = new ListNode(val);if (head == nullptr || val <= head->data) {newNode->next = head;head = newNode;} else {ListNode* current = head;while (current->next!= nullptr && current->next->data < val) {current = current->next;}newNode->next = current->next;current->next = newNode;}}// 就地逆置链表void reverseList() {ListNode* prev = nullptr;ListNode* current = head;ListNode* next = nullptr;while (current!= nullptr) {next = current->next;current->next = prev;prev = current;current = next;}head = prev;}// 打印链表void printList() {ListNode* current = head;while (current!= nullptr) {cout << current->data << " ";current = current->next;}cout << endl;}// 删除值相同的多余节点void removeDuplicates() {ListNode* current = head;while (current!= nullptr && current->next!= nullptr) {if (current->data == current->next->data) {ListNode* temp = current->next;current->next = current->next->next;delete temp;} else {current = current->next;}}}~LinkedList() {ListNode* current = head;while (current!= nullptr) {ListNode* next = current->next;delete current;current = next;}}private:ListNode* head;
};int main() {LinkedList list;// 创建非递减序单链表并插入一些值list.insertInOrder(3);list.insertInOrder(3);list.insertInOrder(5);list.insertInOrder(5);list.insertInOrder(7);list.insertInOrder(7);cout << "原始链表:";list.printList();// 删除值相同的多余节点list.removeDuplicates();cout << "删除重复节点后的链表:";list.printList();// 就地逆置链表list.reverseList();cout << "逆置后的链表:";list.printList();return 0;
}

题目二:

1.设从键盘输入一个整数序列:a1, a2, …,an,编写程序实现:采用链栈结构存储输入的整数,当ai ≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况给出相应的提示信息。

#include <iostream>
using namespace std;struct Node {int data;Node* next;Node(int val) : data(val), next(nullptr) {}
};class Queue {
private:Node* rear;
public:Queue() : rear(nullptr) {}void enqueue(int val) {Node* newNode = new Node(val);if (rear == nullptr) {newNode->next = newNode;rear = newNode;} else {newNode->next = rear->next;rear->next = newNode;rear = newNode;}}void dequeue() {if (rear == nullptr) {cout << "队列为空,无法出队." << endl;return;}if (rear->next == rear) {delete rear;rear = nullptr;} else {Node* temp = rear->next;rear->next = temp->next;delete temp;}}~Queue() {while (rear!= nullptr) {dequeue();}}
};int main() {Queue queue;queue.enqueue(1);queue.enqueue(2);queue.enqueue(3);queue.dequeue();queue.dequeue();queue.enqueue(4);queue.enqueue(5);queue.dequeue();return 0;
}

 2.设以不带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针。编写相应的入队和出队程序。


#include <iostream>
using namespace std;struct StackNode {int data;StackNode* next;StackNode(int val) : data(val), next(nullptr) {}
};class Stack {
private:StackNode* top;
public:Stack() : top(nullptr) {}void push(int val) {StackNode* newNode = new StackNode(val);newNode->next = top;top = newNode;}void popAndOutput() {if (top == nullptr) {cout << "栈为空,无法出栈和输出." << endl;return;}cout << "栈顶元素为:" << top->data << endl;StackNode* temp = top;top = top->next;delete temp;}~Stack() {while (top!= nullptr) {StackNode* temp = top;top = top->next;delete temp;}}
};int main() {Stack stack;int input;cout << "请输入整数序列,以 -1 结束输入:" << endl;while (true) {cin >> input;if (input == -1) {stack.popAndOutput();break;} else {stack.push(input);}}return 0;
}

大家先思考一下上面的题目,看看上面的代码,我明天会出详细的解析,这期题目有一点难,大家尽量思考,我们明天见。

http://www.dinnco.com/news/83821.html

相关文章:

  • 北京建站方案网站关键词优化公司
  • 网站建设的流程全球疫情最新数据
  • 俄文网站建设 俄文网站设计哪里有正规的电商培训班
  • 携程网站建设状况百度工具
  • 福州网站开发宁波seo网络推广咨询热线
  • 开发微信小程序的工具广州seo优化排名推广
  • 交互设计大学世界排名济南seo优化
  • 宁波公司做网站电工培训
  • wordpress安装 503济南新站seo外包
  • wordpress文章采集seo会被取代吗
  • 公司方案策划书旺道seo优化软件怎么用
  • 手机网站设计模板营销推广费用方案
  • 英文外贸网站源码企业站seo价格
  • 做垃圾网站可行吗网推什么意思
  • 做菠菜网站多少钱googleplay安卓版下载
  • 关于做情侣的网站的图片大全线上营销培训
  • 做网站刷点击广州seo公司
  • 互联网软件外包seo公司培训课程
  • 深圳网站建设推广方法如何自己创建一个网站
  • 东莞品牌网站设计公司搜索指数查询平台
  • 青岛做网站公司搜索引擎 磁力吧
  • 东莞市网站设计上海网站建设方案
  • 自助建站加盟seoul怎么读
  • wordpress文章标题标签seo优化技术教程
  • 企业电子商务网站开发实验报告怎样建立一个网络销售平台
  • 自己做网站可以上传软件下载seo线上培训班
  • 东莞网站开发营销网站怎么优化关键词快速提升排名
  • 全网营销型网站 新闻友情链接论坛
  • 鞍山网站制作长沙seo招聘
  • wordpress4.8版权修改河北seo基础知识