#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//环形链表
typedef struct node {
int date;
struct node* next;
}Node;
//创建节点
Node *create_node(int date) {
Node* node = (Node*)malloc(sizeof(Node));
node->date = date;
node->next = NULL;
return node;
}
//把节点连起来
void create_annuallist(Node** head,int date) {
Node* new_node = create_node(date);
if (*head == NULL) {
*head = new_node;
}
else
{
Node* cur = *head;
while (cur->next) {
cur = cur->next;
}
cur->next = new_node;
}//成链
//成环
new_node->next = *head;
}
//双向循环链表
typedef struct node {
struct node* prev; //前指针
char date[10];//数据域
struct node* next; //后指针
}D_node;
D_node* create_D_node(char*date) {
D_node* new_node = (D_node*)malloc(sizeof(D_node));
strcpy(new_node->date, date);
//前后指针都指向空,初始化
new_node->prev = NULL;
new_node->next = NULL;
return new_node;
}
void create_D_list(D_node** head, char* date) {
D_node* new_node = create_D_node(date);
if (*head == NULL) { //判断头结点是否为空
*head = new_node;
}
else
{
D_node* cur = *head;
while (cur->next) {
cur = cur->next;
}
//双向指向(前指向后,后指向前)
new_node->prev = cur;
cur->next = new_node;
}
//头尾指针互相指向,成环
new_node->next = *head;
(*head)->prev = new_node;
}