数据结构之单链表尾插法创建-RearCreate 推荐
2012-10-15 10:09
357 查看
/* 单链表整表创建算法思路 1.声明一结点p和计数器变量i 2.初始化一空链表L 3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表 4.循环: 生成一新结点赋值给p 随机生成一数字赋值给p的数据域p->data 将p插入到头结点与前一新结点之间 */ #include <stdio.h> #include <stdlib.h> #define DATATYPE char typedef struct Node { DATATYPE data; struct Node *next; }LINKLIST; //尾插法创建循环单链表,执行输入:abcd1234回车,就创建8个数据节点 LINKLIST *RearCreateLinkList() { LINKLIST *LinkList_Head,*LinkList_Point,*LinkList_Rear; char InputChar; LinkList_Head = (LINKLIST *)malloc(sizeof(LINKLIST)); LinkList_Rear = LinkList_Head; puts("Please input the linklist' data: "); InputChar = getchar(); while(InputChar != '\n') { LinkList_Point = (LINKLIST *)malloc(sizeof(LINKLIST)); LinkList_Point->data = InputChar; LinkList_Rear->next = LinkList_Point; LinkList_Rear = LinkList_Point; InputChar = getchar(); } LinkList_Rear->next = LinkList_Head; return(LinkList_Rear); } /*遍历循环链表,显示出每个节点data域*/ void LinkListPrint(LINKLIST *LinkList_Rear) { LINKLIST *List_Point,*LinkList_Head; LinkList_Head = LinkList_Rear->next; if(LinkList_Head == LinkList_Rear) { printf("\n链表为空!\n"); return; } List_Point = LinkList_Head->next; puts("遍历节点:"); while(List_Point != LinkList_Head) { printf("%c ",List_Point->data); List_Point=List_Point->next; } puts(""); /* 暂停,也可以使用system("pause"); */ getchar(); } int main() { LINKLIST *LinkList_Rear_1; /*尾插法创建循环单链表*/ LinkList_Rear_1=RearCreateLinkList(); /*打印循环单链表*/ LinkListPrint(LinkList_Rear_1); return 0; }
Microsoft Visual C++ 6.0 下运行成功。
相关文章推荐
- 数据结构:头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并
- 数据结构(第二天)单链表的基本操作,创建单链表,头插法,尾插法,删除节点,查询节点
- 常用数据结构1——单链表(单链表的创建、)
- 数据结构——单链表的创建、删除、遍历以及节点的插入、删除等操作
- 数据结构之尾插法创建非循环单链表_two
- 数据结构之单链表的整表创建头插法
- 数据结构——单链表的创建、逆置、插入、有序表的建立、有序单链表合并等基础操作!!
- 结构之美:使用尾插法创建单链表
- C语言之数据结构的顺序单链表创建,插入和删除操作
- 数据结构基础系列——单链表的实现
- 数据结构——单链表的基本操作
- 数据结构_单链表的建立与反转
- 【数据结构-单链表】单链表的归并
- 【数据结构】单链表的插入与删除
- 数据结构之单链表
- 成人版java数据结构之单链表I建立和遍历
- 数据结构——单链表的操作
- 创建表(创建相同表结构并且复制表中的数据)
- 数据结构——链表之单链表的拆分
- 【巩固基础】数据结构——链表的操作:链表的创建和逆序操作