循环链表的创建 (采用为尾插法)
来源:互联网 发布:知乎怎么关注更多话题 编辑:程序博客网 时间:2024/05/16 07:46
循环链表的创建和普通单项链表的创建没有什么区别,只不过在链表尾端的指针指向链表头结点即可,没什么难度,直接上代码了啊!
#include<stdio.h>#include<stdlib.h>struct clist { int data; struct clist *next; };typedef struct clist cnode;typedef cnode *clink;clink createclist(int *array,int len) { clink head; clink before; clink new_node; int i; head = ( clink )malloc( sizeof(cnode) ); if( !head ) return NULL; head->data =array[0]; head->next = NULL ; before = head; for( i =1; i<len ;i++ ) { new_node = ( clink )malloc( sizeof(cnode) ); if( !new_node ) return NULL; /*创建结点内容设置指针处值*/ new_node->data =array[i]; new_node->next = NULL; /*将前结点指向新结点,新结点成为前结点*/ before->next = new_node; before = new_node; } /*创建环状连接,返回链表起始指针*/ new_node->next = head; return head; } int main() { clink head; clink ptr; int list[6] = {9,7,3,4,5,6}; int i = 0; head = createclist(list,6); if( head == NULL) { printf("内存分配失败!"); exit(1);} printf("数组内容:"); for( i = 0; i < 6;i++) printf("[%d]",list[i]); printf("\n链表内容为:"); ptr = head; do { printf("%d",ptr->data); ptr=ptr->next;}while( head != ptr ); printf("\n"); return 0; }
0 0
- 循环链表的创建 (采用为尾插法)
- 循环单链表(采用尾插法创建链表)
- 循环链表的创建
- 循环链表的创建
- 循环链表创建
- 循环链表的创建和读取
- 循环链表的创建及遍历
- 怎样循环的创建链表
- 循环链表的创建及遍历
- 循环链表的创建与输出
- js的image()循环创建,src始终为最近创建的那个解决办法(给image.onload传参)
- 创建非循环链表
- 创建非循环链表
- list的遍历采用for循环。
- 循环双向链表的创建方法 最简单的循环双向链表
- 双向循环链表的创建,插入与删除。
- 双向循环链表的创建,插入,删除操作
- 单向循环链表的创建/插入/删除/输出算法
- Spring Security教程(8)---- 自定义决策管理器及修改权限前缀
- Mincost
- Spring Security教程(9)---- 自定义AccessDeniedHandler
- 时间过的悄无声息,我却依然没发觉
- Spring Security教程外篇(2)---- 乱起八糟的一下东西,自己备用
- 循环链表的创建 (采用为尾插法)
- Spring Security教程(10)---- 自定义登录成功后的处理程序及修改默认验证地址
- 使用aspnetpager,设定默认CurrentPageIndex的方法
- O_board-4-仿真环境的构建与验证
- Spring Security教程(11)---- 使用数据库来管理资源
- 主要编程教学语言的讨论
- UVa 357 - Let Me Count The Ways
- ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器
- 稀疏表示与人脸识别、人脸表情识别实验