C语言实现链表简单地实现
2010-11-06 14:20
429 查看
/*
* link.h
*
* Created on: Nov 6, 2010
* Author: jenson
*/
#ifndef LINK_H_
#define LINK_H_
typedef struct node *link;
typedef int item_type;
struct node{
item_type item;
link next;
};
extern void init_nodes(int);
extern link new_node(int);
extern void free_node(link);
extern void insert_next(link,link);
extern void delete_next(link);
extern link next(link);
extern int item(link);
#endif /* LINK_H_ */
/*
* link.c
*
* Created on: Nov 6, 2010
* Author: jenson
*/
#include "link.h"
link free_list;
void init_nodes(int N){
int i ;
free_list = malloc((N+1)*sizeof(* free_list));
for(i = 0;i<N+1;i++){
free_list[i]->next = &free_list[i+1];
}
free_list
->next = NULL;
}
link new_node(int i){
link x = delete_next(free_list);
x->item = i;
x->next = x;
return x;
}
void free_node(link x){
insert_next(free_list,x);
}
void insert_next(link x,link t){
t->next = x->next;
x->next = t;
}
void delete_next(link x){
link t = x->next;
x->next = t->next;
return t;
}
link next(link x){
return x->next;
}
int item(link x){
return x->item;
}
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/416241
* link.h
*
* Created on: Nov 6, 2010
* Author: jenson
*/
#ifndef LINK_H_
#define LINK_H_
typedef struct node *link;
typedef int item_type;
struct node{
item_type item;
link next;
};
extern void init_nodes(int);
extern link new_node(int);
extern void free_node(link);
extern void insert_next(link,link);
extern void delete_next(link);
extern link next(link);
extern int item(link);
#endif /* LINK_H_ */
/*
* link.c
*
* Created on: Nov 6, 2010
* Author: jenson
*/
#include "link.h"
link free_list;
void init_nodes(int N){
int i ;
free_list = malloc((N+1)*sizeof(* free_list));
for(i = 0;i<N+1;i++){
free_list[i]->next = &free_list[i+1];
}
free_list
->next = NULL;
}
link new_node(int i){
link x = delete_next(free_list);
x->item = i;
x->next = x;
return x;
}
void free_node(link x){
insert_next(free_list,x);
}
void insert_next(link x,link t){
t->next = x->next;
x->next = t;
}
void delete_next(link x){
link t = x->next;
x->next = t->next;
return t;
}
link next(link x){
return x->next;
}
int item(link x){
return x->item;
}
本文出自 “有思想的代码” 博客,请务必保留此出处http://wujuxiang.blog.51cto.com/2250829/416241
相关文章推荐
- c语言单向链表的简单实现,隐藏head节点
- 史上最简单的C语言链表实现,没有之一
- c语言中链表的概念和简单的实现
- C语言简单用链表实现学生管理系统
- C语言_链表_结构体_电话簿简单实现
- 史上最简单的C语言链表实现,没有之一
- 史上最简单的C语言链表实现,没有之一
- C语言实现简单的单向链表
- 链表基本操作的C语言简单实现
- C语言-------实现一个简单的单向链表
- c语言实现简单链表
- C语言实现一个简单的单向链表list
- C语言实现一个简单的单向链表list
- c语言实现简单链表
- 数据结构 学习笔记之:静态链表--史上最简单的C语言实现——只为掌握概念——不清楚静态链表的鸟鸟们有福了!
- c语言简单链表实现
- 转载的标准文档:C语言实现一个简单的单向链表list
- 简单链表C语言实现
- 简单易懂的C语言实现双向链表代码
- 【C语言】C语言实现简单的链表