淘宝客网站如何让做,怎么用软件做原创视频网站,建设银行手机银行网站用户名,cms监控软件显示所有信息 2023年10月1日的描述:今天放假 2023年10月2日的描述:今天有体育 2023年10月3日的描述:今天有数学 2023年10月4日的描述:今天有语文 2023年10月5日的描述:今天有政治 2023年10月6日的描述:今天交学费 2023年10月7日的描述:今天周末 2023年10月8日的描述:今天给家里… 显示所有信息 2023年10月1日的描述:今天放假 2023年10月2日的描述:今天有体育 2023年10月3日的描述:今天有数学 2023年10月4日的描述:今天有语文 2023年10月5日的描述:今天有政治 2023年10月6日的描述:今天交学费 2023年10月7日的描述:今天周末 2023年10月8日的描述:今天给家里打电话 2023年10月9日的描述:今天给同学辅导数学 2023年10月10日的描述:今天上体育 查找 2023,10,4号的信息 2023年10月4日的描述:今天有语文 更改2023年10月4的信息 [更改]请输入2023年10月4日的描述:中华人民共和国 修改后的节点信息是: 2023年10月4日的描述:中华人民共和国 删除2023年10月5号的记录 2023年10月5日的描述:今天有政治 以上节点信息从链上被剔除~ 显示所有信息 2023年10月1日的描述:今天放假 2023年10月2日的描述:今天有体育 2023年10月3日的描述:今天有数学 2023年10月4日的描述:中华人民共和国 2023年10月6日的描述:今天交学费 2023年10月7日的描述:今天周末 2023年10月8日的描述:今天给家里打电话 2023年10月9日的描述:今天给同学辅导数学 2023年10月10日的描述:今天上体育 所有节点释放完毕~ #define _CRT_SECURE_NO_WARNINGS
#include stdio.h
#include stdlib.h
#includestring.htypedef struct Date {int year, month, day;
}Date_t;typedef struct Node {Date_t date;//日期char describe[200];//描述struct Node* next;
}Node_t,*ListLink;void init(ListLink* L) {*L malloc(sizeof(Node_t)); if (!L) //如果分配失败exit(1);(*L)-next NULL;
}void push_back(ListLink* L,Node_t node) {static ListLink tail;if ((*L)-next NULL) {tail *L;}Node_t* newNode malloc(sizeof(Node_t));if (!newNode) //如果分配失败exit(1);newNode-date node.date;strcpy(newNode-describe, node.describe);newNode-next NULL;tail-next newNode;tail newNode;
}Node_t creatNode(int year,int month,int day,char * describe) { Node_t node;node.date.year year;node.date.month month;node.date.day day;node.next NULL;strcpy(node.describe, describe);return node;
}int cmp(Date_t a, Date_t b) { //分析两个日期是否一直一直返回1if (a.year ! b.year)return 0;if (a.month ! b.month)return 0;if (a.day ! b.day)return 0;return 1;
}Node_t* findByDate(ListLink L,Date_t date) {//根据年月日查找节点是否存在ListLink p L-next;while (p) {if (cmp(p-date, date))//如果找到了对应日期返回return p;p p-next;}return p;//没找到返回的必是空
}void showNode(Node_t* node) {//显示一个节点的信息 printf(%d年%d月%d日的描述:, node-date.year, node-date.month, node-date.day);puts(node-describe);
}void edit(Node_t*node) {printf([更改]请输入%d年%d月%d日的描述:,node-date.year, node-date.month, node-date.day);gets(node-describe);puts(修改后的节点信息是:);showNode(node);
}void delete(ListLink *L,Date_t date) {//找到指定节点的前一个节点ListLink previous (*L);ListLink current (*L)-next;while (current) {if (cmp(current-date, date))//如果找到了对应日期返回break;previous current;current current-next;}if (current) {previous-next current-next;showNode((Node_t*)current);puts(以上节点信息从链上被剔除~);free(current);}else {puts(删除失败没有此日期的节点);}
}void printAll(ListLink L) { ListLink current L-next;while (current) {showNode(current);current current-next;}
}void destruction(ListLink* L) {//销毁整个链Node_t* current;if (*L NULL)return;current (*L)-next;while (current) { (*L)-next current-next;free(current);current (*L)-next; }free(*L);puts(所有节点释放完毕~);
}int main()
{ListLink L;Node_t* node;Date_t date;init(L);push_back(L, creatNode(2023, 10, 1, 今天放假));push_back(L, creatNode(2023, 10, 2, 今天有体育));push_back(L, creatNode(2023, 10, 3, 今天有数学));push_back(L, creatNode(2023, 10, 4, 今天有语文));push_back(L, creatNode(2023, 10, 5, 今天有政治));push_back(L, creatNode(2023, 10, 6, 今天交学费));push_back(L, creatNode(2023, 10, 7, 今天周末));push_back(L, creatNode(2023, 10, 8, 今天给家里打电话));push_back(L, creatNode(2023, 10, 9, 今天给同学辅导数学));push_back(L, creatNode(2023, 10, 10, 今天上体育));//显示所有信息puts(\n\n显示所有信息);printAll(L);//查找 2023,10,4号的信息puts(\n\n查找 2023,10,4号的信息);date.year 2023;date.month 10;date.day 4;node findByDate(L,date);showNode(node);//更改10月4的信息puts(\n\n更改2023年10月4的信息);edit(node);//删除2023年10月5号的记录puts(\n\n删除2023年10月5号的记录);date.year 2023;date.month 10;date.day 5;delete(L,date);//显示所有信息puts(\n\n显示所有信息);printAll(L);destruction(L);return 0;
}