单项循环链表
2016-02-19 18:03
666 查看
单向循环链表
1。节点
typedef int datatype;
typedef struct node
{
datatype data;
struct node *next;
}listnode,*linklist;
2.声明单向循环空链表,不带头结点的单向循环链表
linklist init_list()
{
linklist L =NULL
return L;
}
bool is_empty(linklist L)//判断是否为空链表
{
return L ==NULL
}
3.插入数据
//bool inser_node(int data,struct node *l)
bool inser_node(int data,linklist *l)//主要因为这里要对头进行操作所有需要取*,传地址,否则只能对形参产生影响,而不影响实参的变化。
{
//产生新节点
linklist new =malloc();
new->data=data;
//
if(is_empty(*pl))
{
*l=new;
new->next=new;//循环,指向自身
return true;
}
//链表不为空插入节点
linklist p = *l;
while(p->next!=*l)
{
p=p->next;
}
new->next=*l;
p->next=new;
return true;
}
4.
show(linklist L)
{
linklist p=L;
while(p->next!=L)
{
printf("",p->data)
p=p->next;
}
printf("",p->data)//打印节点,注意最后一个节点需要格外打印
}
int main()
{
linklist L;
L=init_list();
for(i=1;i<=5;i++)
{
inser_node(i,&L);//这里注意取地址
}
}
1。节点
typedef int datatype;
typedef struct node
{
datatype data;
struct node *next;
}listnode,*linklist;
2.声明单向循环空链表,不带头结点的单向循环链表
linklist init_list()
{
linklist L =NULL
return L;
}
bool is_empty(linklist L)//判断是否为空链表
{
return L ==NULL
}
3.插入数据
//bool inser_node(int data,struct node *l)
bool inser_node(int data,linklist *l)//主要因为这里要对头进行操作所有需要取*,传地址,否则只能对形参产生影响,而不影响实参的变化。
{
//产生新节点
linklist new =malloc();
new->data=data;
//
if(is_empty(*pl))
{
*l=new;
new->next=new;//循环,指向自身
return true;
}
//链表不为空插入节点
linklist p = *l;
while(p->next!=*l)
{
p=p->next;
}
new->next=*l;
p->next=new;
return true;
}
4.
show(linklist L)
{
linklist p=L;
while(p->next!=L)
{
printf("",p->data)
p=p->next;
}
printf("",p->data)//打印节点,注意最后一个节点需要格外打印
}
int main()
{
linklist L;
L=init_list();
for(i=1;i<=5;i++)
{
inser_node(i,&L);//这里注意取地址
}
}
相关文章推荐
- 左侧固定宽,右侧自适应屏幕宽,左右两列,等高布局
- JSON和JS对象之间的互转
- Visibility属性控制元素的显示和隐藏
- 以太网帧格式
- Database LeetCode Department Highest Salary
- iOS解析XML
- android:TableLayout表格布局详解
- magento优惠码提交不了
- sql 查出一张表中重复的所有记录数据
- android: android中dip、dp、px、sp和屏幕密度
- 无阻塞加载脚本的方案
- 项目管理工具~Jira
- POJ 3041 Asteroids(匈牙利+邻接表)
- Jquery Ajax调用aspx页面方法
- 基于redis分布式缓存实现(新浪微博案例)
- springmvc
- Arrays
- JSP自定义标签(一) 树形下拉选择菜单
- 19.php延迟绑定,使用static创建对象
- leetcode刷题系列C++-next permutation