C++ 使用格式打印输出(第x页)->;在cpp中
请提供注释中所述的函数append、printList和delete_evens的实现。您将处理一个页面链接列表,其中每个节点(页面)分别使用next和prev指针链接到其下一个和上一个节点(页面)。请注意,第一个节点(头)的前一个节点为空。以类似的方式,最后一个节点的下一个节点也将为NULL 预期产出如下:C++ 使用格式打印输出(第x页)->;在cpp中,c++,C++,请提供注释中所述的函数append、printList和delete_evens的实现。您将处理一个页面链接列表,其中每个节点(页面)分别使用next和prev指针链接到其下一个和上一个节点(页面)。请注意,第一个节点(头)的前一个节点为空。以类似的方式,最后一个节点的下一个节点也将为NULL 预期产出如下: Created PageList: (page1)->(page2)->(page3)->(page4)->(page5)->(page6)->(pag
Created PageList:
(page1)->(page2)->(page3)->(page4)->(page5)->(page6)->(page7)->(page8)->(page9)->(page10)->(page11)->(page12)->(page13)->(page14)->(page15)->(page16)->(page17)->(page18)->(page19)->(page20)->(page21)->(page22)->(page23)->(page24)->(page25)->(page26)->(page27)->(page28)->(page29)->(page30)->(page31)->(page32)->(page33)->(page34)->(page35)->(page36)->(page37)->(page38)->(page39)->(page40)->(page41)->(page42)->(page43)->(page44)->(page45)->(page46)->(page47)->(page48)->(page49)->(page50)->
Updated PageList:
(page1)->(page3)->(page5)->(page7)->(page9)->(page11)->(page13)->(page15)->(page17)->(page19)->(page21)->(page23)->(page25)->(page27)->(page29)->(page31)->(page33)->(page35)->(page37)->(page39)->(page41)->(page43)->(page45)->(page47)->(page49)->
#include <iostream>
#include <string>
using namespace std;
class Page {
public:
int page_number = 0;
string page_content = "";
Page *next = NULL;
Page *prev = NULL; // previous
};
class PageList {
public:
Page *head = NULL; // point to the first page
// append a page to the end of the list
void append(int page_number, string page_content) {
Page *first;
first = new Page();
first->page_content = page_content;
first->next = NULL;
first->prev = NULL;
first->page_number = page_number;
if (head == NULL) {
head = first;
} else {
Page *second = head;
while (second->next != NULL) {
second = second->next;
}
second->next = first;
}
}
// print all the elements of the list (pages) with the given format
void print list(Page *node, bool forward) {
while (node != NULL) {
cout << node->page_content << " ";
node = node->next;
}
cout << endl;
}
void delete_evens() { // delete the pages with even page_number
Page *first = head;
Page *q = NULL;
while (first != NULL) {
if (first->page_number % 2 == 0) {
if (q == NULL) {
head = first->next;
first = first->next;
} else {
q->next = first->next;
first->next = NULL;
first = q->next;
}
} else {
if (q == NULL) {
q = first;
first = first->next;
} else {
q = q->next;
first = first->next;
}
}
}
}
PageList(int pages) noexcept // consteructor
{
head = NULL;
for (int i = 1; i <= pages; i++) {
append(i, "(page" + to_string(i));
}
cout << "Created PageList:" << endl;
printList(head, true);
delete_evens();
cout << "Updated PageList:" << endl;
printList(head, true);
}
};
int main() {
PageList list(50);
return 0;
}
我得到的结果是:
Created PageList:
(page)->1 (page)->2 (page)->3 (page)->4 (page)->5 (page)->6 (page)->7 (page)->8 (page)->9 (page)->10 (page)->11 (page)->12 (page)->13 (page)->14 (page)->15 (page)->16 (page)->17 (page)->18 (page)->19 (page)->20 (page)->21 (page)->22 (page)->23 (page)->24 (page)->25 (page)->26 (page)->27 (page)->28 (page)->29 (page)->30 (page)->31 (page)->32 (page)->33 (page)->34 (page)->35 (page)->36 (page)->37 (page)->38 (page)->39 (page)->40 (page)->41 (page)->42 (page)->43 (page)->44 (page)->45 (page)->46 (page)->47 (page)->48 (page)->49 (page)->50
Updated PageList:
(page)->1 (page)->3 (page)->5 (page)->7 (page)->9 (page)->11 (page)->13 (page)->15 (page)->17 (page)->19 (page)->21 (page)->23 (page)->25 (page)->27 (page)->29 (page)->31 (page)->33 (page)->35 (page)->37 (page)->39 (page)->41 (page)->43 (page)->45 (page)->47 (page)->49
我的代码如下:
Created PageList:
(page1)->(page2)->(page3)->(page4)->(page5)->(page6)->(page7)->(page8)->(page9)->(page10)->(page11)->(page12)->(page13)->(page14)->(page15)->(page16)->(page17)->(page18)->(page19)->(page20)->(page21)->(page22)->(page23)->(page24)->(page25)->(page26)->(page27)->(page28)->(page29)->(page30)->(page31)->(page32)->(page33)->(page34)->(page35)->(page36)->(page37)->(page38)->(page39)->(page40)->(page41)->(page42)->(page43)->(page44)->(page45)->(page46)->(page47)->(page48)->(page49)->(page50)->
Updated PageList:
(page1)->(page3)->(page5)->(page7)->(page9)->(page11)->(page13)->(page15)->(page17)->(page19)->(page21)->(page23)->(page25)->(page27)->(page29)->(page31)->(page33)->(page35)->(page37)->(page39)->(page41)->(page43)->(page45)->(page47)->(page49)->
#include <iostream>
#include <string>
using namespace std;
class Page {
public:
int page_number = 0;
string page_content = "";
Page *next = NULL;
Page *prev = NULL; // previous
};
class PageList {
public:
Page *head = NULL; // point to the first page
// append a page to the end of the list
void append(int page_number, string page_content) {
Page *first;
first = new Page();
first->page_content = page_content;
first->next = NULL;
first->prev = NULL;
first->page_number = page_number;
if (head == NULL) {
head = first;
} else {
Page *second = head;
while (second->next != NULL) {
second = second->next;
}
second->next = first;
}
}
// print all the elements of the list (pages) with the given format
void print list(Page *node, bool forward) {
while (node != NULL) {
cout << node->page_content << " ";
node = node->next;
}
cout << endl;
}
void delete_evens() { // delete the pages with even page_number
Page *first = head;
Page *q = NULL;
while (first != NULL) {
if (first->page_number % 2 == 0) {
if (q == NULL) {
head = first->next;
first = first->next;
} else {
q->next = first->next;
first->next = NULL;
first = q->next;
}
} else {
if (q == NULL) {
q = first;
first = first->next;
} else {
q = q->next;
first = first->next;
}
}
}
}
PageList(int pages) noexcept // consteructor
{
head = NULL;
for (int i = 1; i <= pages; i++) {
append(i, "(page" + to_string(i));
}
cout << "Created PageList:" << endl;
printList(head, true);
delete_evens();
cout << "Updated PageList:" << endl;
printList(head, true);
}
};
int main() {
PageList list(50);
return 0;
}
#包括
#包括
使用名称空间std;
类页{
公众:
整版页码=0;
字符串页面_content=“”;
第*页下一页=空;
Page*prev=NULL;//上一页
};
类页面列表{
公众:
Page*head=NULL;//指向第一页
//在列表末尾追加一页
无效附加(整型页码,字符串页码内容){
第一页*;
first=新页面();
第一->页面内容=页面内容;
first->next=NULL;
第一个->上一个=空;
第一->页码=页码;
if(head==NULL){
头=第一;
}否则{
第二页=页眉;
while(秒->下一步!=NULL){
秒=秒->下一步;
}
第二->下一步=第一步;
}
}
//以给定格式打印列表(页面)的所有元素
作废打印列表(第*页节点,bool forward){
while(节点!=NULL){
下一步无法翻页内容;
}
cout页码(编号%2==0){
if(q==NULL){
头=第一个->下一个;
第一个=第一个->下一个;
}否则{
q->next=第一个->下一个;
first->next=NULL;
first=q->next;
}
}否则{
if(q==NULL){
q=第一;
第一个=第一个->下一个;
}否则{
q=q->next;
第一个=第一个->下一个;
}
}
}
}
页面列表(整型页面)无异常//常量
{
head=NULL;
对于(int i=1;i#包括
#包括
使用名称空间std;
// -------------------------------------------------------------------
类页{
公众:
整版页码=0;
字符串页面_content=“”;
第*页下一页=空;
Page*prev=NULL;//上一页
};
类页面列表{
公众:
Page*head=NULL;//指向第一页
//在列表末尾追加一页
无效附加(整型页码,字符串页码内容){
第一页*;
first=新页面();
第一->页面内容=页面内容;
first->next=NULL;
第一个->上一个=空;
第一->页码=页码;
if(head==NULL){
头=第一;
}
否则{
第二页=页眉;
while(秒->下一步!=NULL){
秒=秒->下一步;
}
第二->下一步=第一步;
}
}
//以给定格式打印列表(页面)的所有元素
无效打印列表(第*页节点,bool forward){
while(节点!=NULL){
coutnext;
first->next=NULL;
first=q->next;
}
}
其他的
{
if(q==NULL)
{
q=第一;
第一个=第一个->下一个;
}
其他的
{
q=q->next;
第一个=第一个->下一个;
}
}
}
}
页面列表(整型页面)无异常//常量
{
head=NULL;
对于(inti=1;iYou应该标记代码,这真的很难理解read@Linus行。。发布的代码不会创建您所说的输出。@DavidThornley您能帮忙吗?我不知道该怎么办。@KevalPatel,还要学习吗?