📄 c_create.java
字号:
/* =============== Program Description =============== */
/* 程序名称: c_create.c */
/* 程序目的: 设计一个将输入的数据建立成环形链表、 */
/* 输出环形链表数据,并释放环形链表 */
/* Written By Kuo-Yu Huang. (WANT Studio.) */
/* =================================================== */
#include <stdlib.h>
#define Max1 10
struct List /* 节点结构声明 */
{
int Number;
struct List *Next;
};
typedef struct List Node;
typedef Node *Link;
/* --------------------------------------------------- */
/* 释放环形链表 */
/* --------------------------------------------------- */
void Free_CList(Link Head)
{
Link Pointer; /* 节点声明 */
Link Next; /* 节点声明 */
Next = Head->Next; /* 下一个节点为首节点的下一个节点 */
while ( Next != Head ) /* 当下一个节点为首节点时,结束循环 */
{
Pointer = Next;
Next = Next->Next; /* 往下一个节点 */
free(Pointer);
}
free(Head);
}
int Data1[Max1] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
/* --------------------------------------------------- */
/* 输出环形链表数据 */
/* --------------------------------------------------- */
void Print_CList(Link Head)
{
Link Pointer; /* 节点声明 */
Pointer = Head; /* Pointer指针设为首节点 */
printf("Input Data :\n");
do
{
printf("[%d]",Pointer->Number);
Pointer = Pointer->Next; /* 指向下一个节点 */
} while ( Pointer != Head ); /* 当节点为开头节点时,结束循环 */
printf("\n");
}
/* --------------------------------------------------- */
/* 建立环形链表 */
/* --------------------------------------------------- */
Link Create_CList(Link Head,int *Data,int Max)
{
Link New; /* 节点声明 */
Link Pointer; /* 节点声明 */
int i;
Head = (Link) malloc(sizeof(Node)); /* 存储空间配置 */
if ( Head == NULL ) /* 存储空间配置失败 */
printf("Memory allocate Failure!!\n");
else
{
Head->Number = Data[0]; /* 定义首节点数据编号 */
Head->Next = NULL;
Pointer = Head; /* Pointer指针设为首节点 */
for ( i=1;i<Max;i++)
{
/* 存储空间配置 */
New = (Link) malloc(sizeof(Node));
New->Number = Data[i];
New->Next = NULL;
/* 将新节点串连在原链表尾端 */
Pointer->Next = New;
/* 链表尾端节点为新节点 */
Pointer = New;
}
Pointer->Next = Head; /* 将最后一个节点指向首节点 */
}
return Head;
}
/* --------------------------------------------------- */
/* 主程序 */
/* --------------------------------------------------- */
void main ()
{
Link Head; /* 节点声明 */
Head = Create_CList(Head,Data1,Max1); /* 调用建立环形链表 */
if ( Head != NULL )
Print_CList(Head); /* 调用输出环形链表数据 */
Free_CList(Head);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -