Chinaunix首页 | 论坛 | 博客
  • 博客访问: 68546
  • 博文数量: 24
  • 博客积分: 410
  • 博客等级: 一等列兵
  • 技术积分: 240
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-16 19:10
文章分类
文章存档

2011年(24)

分类: C/C++

2011-04-03 23:49:55

单链表的倒置
void lin-lnl(link H)
{
    link q,p;
    p = p -> next;
    H -> next = NULL;
    while(p)
    {
         q = p;
         p = p -> next;
         q -> next = H -> next;
         H -> next = q;
     }
 
}
双向循环列表中注意 一定要有 prior  data  next三个组成一个节点
栈的特点是先进后出  也就是类似于数组
对于链栈来说,在使用的时候一定要进行malloc 即生成一个节点 而且链栈操作的删除和添加都是在链表头进行的 用完以后一定要free  为了使程序更加严谨一定要NULL
队列的特点是先进先出  
顺序队列   类似于数组的存储结构
注意:头指针front总是这些队头元素的前一个位置,尾指针rear总是指向队尾元素所在的位置
为区别空对和满队,头指针front指向的位置必须设置为空,满队元素个数比数组的元素个数少一。
对于链队列来说,插入在队尾,而删除则是在队头、  
注意:对于链队列来说,必须也有front 和rear节点即
typedef struct node
{
   datatype data ;
   struct node *next;
 
}linklist;   //链表元素类型定义
typedef struct
{
 
  linklist *front ,*rear ; //链队列指针
 
}linkqueue;  //链队列类型定义
 
linkqueue *q //指向链队列的指针
阅读(807) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~