61.耶斯莫拉
#include"stdafx.h"
#include<assert.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef int ElemType;
typedef struct ListNode{
ElemType data;
struct ListNode *next;
}LinkNode,*LinkList;
//购买节点
ListNode *BuyNode(){
ListNode *s = (ListNode *)malloc(sizeof(ListNode));
if (s == NULL) exit(1);
memset(s, 0, sizeof(ListNode));
return s;
}
//释放节点
void FreeNode(ListNode *s){
free(s);
}
//初始化单链表
ListNode *Init_LinkList(){
ListNode *s = BuyNode();
s->next = NULL;
return s;
}
//打印链表
void PrintList(LinkList L){
assert(L != NULL);
ListNode *p=L->next ;
while (p != NULL){
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
//查询链表
ListNode * FindValue(LinkList L,ElemType val){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
if (p->data == val){
return p;
}
p = p->next;
}
return NULL;
}
//返回当前节点的前一个节点
ListNode * FindValue_Prev(LinkList L, ElemType val){
assert(L != NULL);
ListNode *prev = L;
ListNode *p = L->next;
while (p != NULL&&p->data != val){
prev = p;
p = p->next;
}
if (p == NULL){
prev = NULL;
}
return prev;
}
//按位置查询节点
ListNode *FindValue_index(LinkList L, int pos){
assert(L != NULL);
ListNode *p = L->next;
int i = 1;
if (pos <= 0){
cout << "位置信息不合法!" << endl;
return NULL;
}
while (p != NULL&&i<pos){
p = p->next;
i++;
}
return p;
}
//按位置查询前驱节点
ListNode *FindValue_Prev_index(LinkList L, int pos){
assert(L != NULL);
int i = 1;
if (pos < 1) return NULL;
ListNode *p = L->next;
ListNode *prev = L;
while (p != NULL&&i < pos){
prev = p;
p = p->next;
i++;
}
if (p == NULL){//这一步不可省略呀!!
prev = NULL;
}
return prev;
}
//在指定节点插入元素
bool Insert_Next(LinkList L, ListNode *ptr, ElemType val){
assert(ptr != NULL);
if (ptr == NULL) return false;
LinkNode *r;
r = BuyNode();
r->data = val;
r->next = ptr->next;
ptr->next = r;
return true;
}
//头插法
void Push_Front(LinkList L, ElemType val){
assert(L != NULL);
Insert_Next(L,L, val);
}
//尾插法
void Push_Back(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p;
p = L;
while (p->next != NULL){
p = p->next;
}
Insert_Next(L, p, val);
}
///
int main(){
ListNode *head = Init_LinkList();
for (int i = 0; i < 15; i++){
Push_Back(head, i);
}
PrintList(head);
}
2.妈的 爷自己写的有这么不堪吗 非得debug滴这么久 算了 上代码!
#include"stdafx.h"
#include<assert.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef int ElemType;
typedef struct ListNode{
ElemType data;
struct ListNode *next;
}LinkNode,*LinkList;
//购买节点
ListNode *BuyNode(){
ListNode *s = (ListNode *)malloc(sizeof(ListNode));
if (s == NULL) exit(1);
memset(s, 0, sizeof(ListNode));
return s;
}
//释放节点
void FreeNode(ListNode *s){
free(s);
}
//初始化单链表
ListNode *Init_LinkList(){
ListNode *s = BuyNode();
s->next = NULL;
return s;
}
//打印链表
void PrintList(LinkList L){
assert(L != NULL);
ListNode *p=L->next ;
while (p != NULL){
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
//查询链表
ListNode * FindValue(LinkList L,ElemType val){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
if (p->data == val){
return p;
}
p = p->next;
}
return NULL;
}
//返回当前节点的前一个节点
ListNode * FindValue_Prev(LinkList L, ElemType val){
assert(L != NULL);
ListNode *prev = L;
ListNode *p = L->next;
while (p != NULL&&p->data != val){
prev = p;
p = p->next;
}
if (p == NULL){
prev = NULL;
}
return prev;
}
//按位置查询节点
ListNode *FindValue_index(LinkList L, int pos){
assert(L != NULL);
ListNode *p = L->next;
int i = 1;
if (pos <= 0){
cout << "位置信息不合法!" << endl;
return NULL;
}
while (p != NULL&&i<pos){
p = p->next;
i++;
}
return p;
}
//按位置查询前驱节点
ListNode *FindValue_Prev_index(LinkList L, int pos){
assert(L != NULL);
int i = 1;
if (pos < 1) return NULL;
ListNode *p = L->next;
ListNode *prev = L;
while (p != NULL&&i < pos){
prev = p;
p = p->next;
i++;
}
if (p == NULL){//这一步不可省略呀!!
prev = NULL;
}
return prev;
}
//在指定节点插入元素
bool Insert_Next(LinkList L, ListNode *ptr, ElemType val){
assert(ptr != NULL);
if (ptr == NULL) return false;
LinkNode *r;
r = BuyNode();
r->data = val;
r->next = ptr->next;
ptr->next = r;
return true;
}
//头插法
void Push_Front(LinkList L, ElemType val){
assert(L != NULL);
Insert_Next(L,L, val);
}
//尾插法
void Push_Back(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p;
p = L;
while (p->next != NULL){
p = p->next;
}
Insert_Next(L, p, val);
}
//在指定位置插入节点
bool Insert_Pos(LinkList L, int pos, int val){
assert(L != NULL);
if (pos < 1) return false;
int i = 1;
ListNode *p;
p = L;
while (p != NULL&&i<pos){
p = p->next;
i++;
}
if (p != NULL){
Insert_Next(L, p, val);
return true;
}
else if (p == NULL&&i + 1 == pos){
Insert_Next(L, p, val);
return true;
}
else{
cout << "插入位置不合法!" << endl;
return false ;
}
}
//删除单链表中的元素
bool Delete_List(LinkList L, ListNode *ptr){
assert(L != NULL);
if (ptr == NULL) return false;
ptr->next = ptr->next->next;
return true;
}
//从头部删除单链表的元素
void Pop_Front(LinkList L){
assert(L != NULL);
ListNode *p = L;
if (p!= NULL){
Delete_List(L, p);
}
else cout << "链表为空!" << endl;
}
//单链表尾删法
void Pop_Back(LinkList L){
assert(L != NULL);
ListNode *p = L->next,*s=L;
ListNode *pre = L;
while (p->next != NULL){
pre = p;
p = p->next;
}
Delete_List(pre, s);
//free(pre);
}
///
int main(){
ListNode *head = Init_LinkList();
for (int i = 1; i <= 15; i++){
Push_Back(head, i);
}
PrintList(head);
Pop_Back(head);
//Pop_Front(head);
PrintList(head);
/*
ListNode *p = FindValue_index(head, 5);
cout << p->data << endl;
ListNode *p = FindValue(head, 14);
cout << p->data << endl;
while (1){
int tag, pos, val;
cout << "请输入插入位置和插入数值" << endl;
cin >> pos >> val;
if (val == -1) break;
tag=Insert_Pos(head, pos, val);
PrintList(head);
}
*/
cout << "时光作渡,眉目成书,从此深情不被辜负!" << endl;
}
2.呜呜呜代码丢失了 好惨!
这是临走前打印出来的 羽生结弦 俺爱你
3.昨天代码敲得脑子然乎了 乱写尾插法 现在更新一下改正的错误 并加一个时间复杂度为1的杉树所有值的函数
#include"stdafx.h"
#include<assert.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef int ElemType;
typedef struct ListNode{
ElemType data;
struct ListNode *next;
}LinkNode, *LinkList;
//购买节点
ListNode *BuyNode(){
ListNode *s = (ListNode *)malloc(sizeof(ListNode));
if (s == NULL) exit(1);
memset(s, 0, sizeof(ListNode));
return s;
}
//释放节点
void FreeNode(ListNode *s){
free(s);
}
//初始化单链表
ListNode *Init_LinkList(){
ListNode *s = BuyNode();
s->next = NULL;
return s;
}
//打印链表
void PrintList(LinkList L){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
//查询链表
ListNode * FindValue(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
if (p->data == val){
return p;
}
p = p->next;
}
return NULL;
}
//返回当前节点的前一个节点
ListNode * FindValue_Prev(LinkList L, ElemType val){
assert(L != NULL);
ListNode *prev = L;
ListNode *p = L->next;
while (p != NULL&&p->data != val){
prev = p;
p = p->next;
}
if (p == NULL){
prev = NULL;
}
return prev;
}
//按位置查询节点
ListNode *FindValue_index(LinkList L, int pos){
assert(L != NULL);
ListNode *p = L->next;
int i = 1;
if (pos <= 0){
cout << "位置信息不合法!" << endl;
return NULL;
}
while (p != NULL&&i<pos){
p = p->next;
i++;
}
return p;
}
//按位置查询前驱节点
ListNode *FindValue_Prev_index(LinkList L, int pos){
assert(L != NULL);
int i = 1;
if (pos < 1) return NULL;
ListNode *p = L->next;
ListNode *prev = L;
while (p != NULL&&i < pos){
prev = p;
p = p->next;
i++;
}
if (p == NULL){//这一步不可省略呀!!
prev = NULL;
}
return prev;
}
//在指定节点插入元素
bool Insert_Next(LinkList L, ListNode *ptr, ElemType val){
assert(ptr != NULL);
if (ptr == NULL) return false;
LinkNode *r;
r = BuyNode();
r->data = val;
r->next = ptr->next;
ptr->next = r;
return true;
}
//头插法
void Push_Front(LinkList L, ElemType val){
assert(L != NULL);
Insert_Next(L, L, val);
}
//尾插法
void Push_Back(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p;
p = L;
while (p->next != NULL){
p = p->next;
}
Insert_Next(L, p, val);
}
//在指定位置插入节点
bool Insert_Pos(LinkList L, int pos, int val){
assert(L != NULL);
if (pos < 1) return false;
int i = 1;
ListNode *p;
p = L;
while (p != NULL&&i<pos){
p = p->next;
i++;
}
if (p != NULL){
Insert_Next(L, p, val);
return true;
}
else if (p == NULL&&i + 1 == pos){
Insert_Next(L, p, val);
return true;
}
else{
cout << "插入位置不合法!" << endl;
return false;
}
}
//删除单链表中的元素
bool Delete_List(LinkList L, ListNode *ptr){
assert(L != NULL);
if (ptr == NULL) return false;
ptr->next = ptr->next->next;
return true;
}
//从头部删除单链表的元素
void Pop_Front(LinkList L){
assert(L != NULL);
ListNode *p = L;
if (p != NULL){
Delete_List(L, p);
}
else cout << "链表为空!" << endl;
}
//单链表尾删法
void Pop_Back(LinkList L){
assert(L != NULL);
ListNode *p = L->next, *s = L;
ListNode *pre = L;
while (p->next != NULL){
pre = p;
p = p->next;
}
Delete_List(L,pre);
//free(pre);
}
void Swap(ElemType *a, ElemType *b){
ElemType tmp= *a;
*a = *b;
*b = tmp;
}
//时间复杂度为O(1)的算法 删除所以值相等的元素
void Delete_All(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p = L->next, *pre = L;
while (p != NULL){
if (p->data != val){
pre = pre->next;
Swap(&(pre->data), &(p->data));
}
p = p->next;
}
while (pre->next != NULL) {
Pop_Back(L);
}
}
///
int main(){
ListNode *head = Init_LinkList();
ElemType arr[] = { 1, 23, 1, 45, 12, 456, 13};
for (int i = 0; i < 7; i++){
Push_Back(head, arr[i]);
}
PrintList(head);
Delete_All(head, 12);
PrintList(head);
/*
ListNode *p = FindValue_index(head, 5);
cout << p->data << endl;
ListNode *p = FindValue(head, 14);
cout << p->data << endl;
while (1){
int tag, pos, val;
cout << "请输入插入位置和插入数值" << endl;
cin >> pos >> val;
if (val == -1) break;
tag=Insert_Pos(head, pos, val);
PrintList(head);
}
*/
cout << "时光作渡,眉目成书,从此深情不被辜负!" << endl;
}
3.好啦 带头节点的单链表操作就到此为止啦!
#include"stdafx.h"
#include<assert.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef int ElemType;
typedef struct ListNode{
ElemType data;
struct ListNode *next;
}LinkNode, *LinkList;
//购买节点
ListNode *BuyNode(){
ListNode *s = (ListNode *)malloc(sizeof(ListNode));
if (s == NULL) exit(1);
memset(s, 0, sizeof(ListNode));
return s;
}
//释放节点
void FreeNode(ListNode *s){
free(s);
}
//初始化单链表
ListNode *Init_LinkList(){
ListNode *s = BuyNode();
s->next = NULL;
return s;
}
//打印链表
void PrintList(LinkList L){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
//查询链表
ListNode * FindValue(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
if (p->data == val){
return p;
}
p = p->next;
}
return NULL;
}
//返回当前节点的前一个节点
ListNode * FindValue_Prev(LinkList L, ElemType val){
assert(L != NULL);
ListNode *prev = L;
ListNode *p = L->next;
while (p != NULL&&p->data != val){
prev = p;
p = p->next;
}
if (p == NULL){
prev = NULL;
}
return prev;
}
//按位置查询节点
ListNode *FindValue_index(LinkList L, int pos){
assert(L != NULL);
ListNode *p = L->next;
int i = 1;
if (pos <= 0){
cout << "位置信息不合法!" << endl;
return NULL;
}
while (p != NULL&&i<pos){
p = p->next;
i++;
}
return p;
}
//按位置查询前驱节点
ListNode *FindValue_Prev_index(LinkList L, int pos){
assert(L != NULL);
int i = 1;
if (pos < 1) return NULL;
ListNode *p = L->next;
ListNode *prev = L;
while (p != NULL&&i < pos){
prev = p;
p = p->next;
i++;
}
if (p == NULL){//这一步不可省略呀!!
prev = NULL;
}
return prev;
}
//在指定节点插入元素
bool Insert_Next(LinkList L, ListNode *ptr, ElemType val){
assert(ptr != NULL);
if (ptr == NULL) return false;
LinkNode *r;
r = BuyNode();
r->data = val;
r->next = ptr->next;
ptr->next = r;
return true;
}
//头插法
void Push_Front(LinkList L, ElemType val){
assert(L != NULL);
Insert_Next(L, L, val);
}
//尾插法
void Push_Back(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p;
p = L;
while (p->next != NULL){
p = p->next;
}
Insert_Next(L, p, val);
}
//在指定位置插入节点
bool Insert_Pos(LinkList L, int pos, int val){
assert(L != NULL);
if (pos < 1) return false;
int i = 1;
ListNode *p;
p = L;
while (p != NULL&&i<pos){
p = p->next;
i++;
}
if (p != NULL){
Insert_Next(L, p, val);
return true;
}
else if (p == NULL&&i + 1 == pos){
Insert_Next(L, p, val);
return true;
}
else{
cout << "插入位置不合法!" << endl;
return false;
}
}
//删除单链表中的元素
bool Delete_List(LinkList L, ListNode *ptr){
assert(L != NULL);
if (ptr == NULL) return false;
ptr->next = ptr->next->next;
return true;
}
//从头部删除单链表的元素
void Pop_Front(LinkList L){
assert(L != NULL);
ListNode *p = L;
if (p != NULL){
Delete_List(L, p);
}
else cout << "链表为空!" << endl;
}
//单链表尾删法
void Pop_Back(LinkList L){
assert(L != NULL);
ListNode *p = L->next, *s = L;
ListNode *pre = L;
while (p->next != NULL){
pre = p;
p = p->next;
}
Delete_List(L,pre);
//free(pre);
}
void Swap(ElemType *a, ElemType *b){
ElemType tmp= *a;
*a = *b;
*b = tmp;
}
//时间复杂度为O(1)的算法 删除所以值相等的元素
void Delete_All(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p = L->next, *pre = L;
while (p != NULL){
if (p->data != val){
pre = pre->next;
Swap(&(pre->data), &(p->data));
}
p = p->next;
}
while (pre->next != NULL) {
Pop_Back(L);
}
}
//清除函数--->只剩头节点
void ClearList(LinkList L){
ListNode *p =L;
while (p->next != NULL){
Pop_Back(L);
}
}
//摧毁函数--->头节点也清空
void DestoryList(LinkList L){
assert(L != NULL);
ClearList(L);
free(L);
cout << "破坏成功!" << endl;
}
///
int main(){
ListNode *head = Init_LinkList();
ListNode *p = head->next;
ElemType arr[] = { 1, 23, 1, 45, 12, 456, 13};
for (int i = 0; i < 7; i++){
Push_Back(head, arr[i]);
}
PrintList(head);
ClearList(head);
cout << p;
PrintList(head);
/*
ListNode *p = FindValue_index(head, 5);
cout << p->data << endl;
ListNode *p = FindValue(head, 14);
cout << p->data << endl;
while (1){
int tag, pos, val;
cout << "请输入插入位置和插入数值" << endl;
cin >> pos >> val;
if (val == -1) break;
tag=Insert_Pos(head, pos, val);
PrintList(head);
}
*/
cout << "时光作渡,眉目成书,从此深情不被辜负!" << endl;
}
1.一直都知道在一个函数中定义变量的位置很重要 但是没有想到先定义也会出问题 保守起见 以后每次定义变量遵循用时定义 md搞我心态
这个时逆置后的结果 代码最后上吧
#include"stdafx.h"
#include<assert.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef int ElemType;
typedef struct ListNode{
ElemType data;
struct ListNode *next;
}LinkNode, *LinkList;
//购买节点
ListNode *BuyNode(){
ListNode *s = (ListNode *)malloc(sizeof(ListNode));
if (s == NULL) exit(1);
memset(s, 0, sizeof(ListNode));
return s;
}
//释放节点
void FreeNode(ListNode *s){
free(s);
}
//初始化单链表
ListNode *Init_LinkList(){
ListNode *s = BuyNode();
s->next = NULL;
return s;
}
//打印链表
void PrintList(LinkList L){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
//查询链表
ListNode * FindValue(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p = L->next;
while (p != NULL){
if (p->data == val){
return p;
}
p = p->next;
}
return NULL;
}
//返回当前节点的前一个节点
ListNode * FindValue_Prev(LinkList L, ElemType val){
assert(L != NULL);
ListNode *prev = L;
ListNode *p = L->next;
while (p != NULL&&p->data != val){
prev = p;
p = p->next;
}
if (p == NULL){
prev = NULL;
}
return prev;
}
//按位置查询节点
ListNode *FindValue_index(LinkList L, int pos){
assert(L != NULL);
ListNode *p = L->next;
int i = 1;
if (pos <= 0){
cout << "位置信息不合法!" << endl;
return NULL;
}
while (p != NULL&&i<pos){
p = p->next;
i++;
}
return p;
}
//按位置查询前驱节点
ListNode *FindValue_Prev_index(LinkList L, int pos){
assert(L != NULL);
int i = 1;
if (pos < 1) return NULL;
ListNode *p = L->next;
ListNode *prev = L;
while (p != NULL&&i < pos){
prev = p;
p = p->next;
i++;
}
if (p == NULL){//这一步不可省略呀!!
prev = NULL;
}
return prev;
}
//在指定节点插入元素
bool Insert_Next(LinkList L, ListNode *ptr, ElemType val){
assert(ptr != NULL);
if (ptr == NULL) return false;
LinkNode *r;
r = BuyNode();
r->data = val;
r->next = ptr->next;
ptr->next = r;
return true;
}
//头插法
void Push_Front(LinkList L, ElemType val){
assert(L != NULL);
Insert_Next(L, L, val);
}
//尾插法
void Push_Back(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p;
p = L;
while (p->next != NULL){
p = p->next;
}
Insert_Next(L, p, val);
}
//在指定位置插入节点
bool Insert_Pos(LinkList L, int pos, int val){
assert(L != NULL);
if (pos < 1) return false;
int i = 1;
ListNode *p;
p = L;
while (p != NULL&&i<pos){
p = p->next;
i++;
}
if (p != NULL){
Insert_Next(L, p, val);
return true;
}
else if (p == NULL&&i + 1 == pos){
Insert_Next(L, p, val);
return true;
}
else{
cout << "插入位置不合法!" << endl;
return false;
}
}
//删除单链表中的元素
bool Delete_List(LinkList L, ListNode *ptr){
assert(L != NULL);
if (ptr == NULL) return false;
ptr->next = ptr->next->next;
return true;
}
//从头部删除单链表的元素
void Pop_Front(LinkList L){
assert(L != NULL);
ListNode *p = L;
if (p != NULL){
Delete_List(L, p);
}
else cout << "链表为空!" << endl;
}
//单链表尾删法
void Pop_Back(LinkList L){
assert(L != NULL);
ListNode *p = L->next, *s = L;
ListNode *pre = L;
while (p->next != NULL){
pre = p;
p = p->next;
}
Delete_List(L, pre);
//free(pre);
}
void Swap(ElemType *a, ElemType *b){
ElemType tmp = *a;
*a = *b;
*b = tmp;
}
//时间复杂度为O(1)的算法 删除所以值相等的元素
void Delete_All(LinkList L, ElemType val){
assert(L != NULL);
ListNode *p = L->next, *pre = L;
while (p != NULL){
if (p->data != val){
pre = pre->next;
Swap(&(pre->data), &(p->data));
}
p = p->next;
}
while (pre->next != NULL) {
Pop_Back(L);
}
}
//清除函数--->只剩头节点
void ClearList(LinkList L){
ListNode *p = L;
while (p->next != NULL){
Pop_Back(L);
}
}
//摧毁函数--->头节点也清空
void DestoryList(LinkList L){
assert(L != NULL);
ClearList(L);
free(L);
cout << "破坏成功!" << endl;
}
/*
void Inversion_List(LinkList L){
assert(L != NULL);
LinkList head = Init_LinkList();
ListNode *p = L->next;
while (p != NULL){
Push_Front(head, p->data);
p = p->next;
}
ListNode *q = head->next, *s = L->next;
while (q != NULL&&s!=NULL){
s->data = q->data;
s = s->next;
q = q->next;
}
}
*/
//单链表逆置(老师的算法yyds!)
void Inversion_List(LinkList L){
assert(L != NULL);
ListNode *p = L->next,*pre=L;
pre->next = NULL;
while (p != NULL){
Push_Front(L, p->data);
p = p->next;
}
}
///
int main(){
ListNode *head = Init_LinkList();
ListNode *p = head->next;
ElemType arr[] = { 1, 23, 1, 45, 12, 456, 13 };
for (int i = 0; i < 7; i++){
Push_Back(head, arr[i]);
}
PrintList(head);
Inversion_List(head);
cout << "逆置后的链表为:" << endl;
/*
ClearList(head);
cout << p;
*/
PrintList(head);
/*
ListNode *p = FindValue_index(head, 5);
cout << p->data << endl;
ListNode *p = FindValue(head, 14);
cout << p->data << endl;
while (1){
int tag, pos, val;
cout << "请输入插入位置和插入数值" << endl;
cin >> pos >> val;
if (val == -1) break;
tag=Insert_Pos(head, pos, val);
PrintList(head);
}
*/
cout << "时光作渡,眉目成书,从此深情不被辜负!" << endl;
}