Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2340977
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:08:39

//只需要把所有的结点指针的方向逆置
//单链表的类定义
class List;    //复合类定义
class ListNode  //链表结点类
{
    friend class List;
    private :
               int data;   //结点数据,int 型
               ListNode *next;//结点指针
};
class List {     //链表类
private:
       ListNode *first,*last;   //表头和表尾指针
public:......
}
//下面的是算法

     pr=0     p
h--->[][]--->[][]--->[][]--->[][0]    //前一个为数值域后一个为指针域



if ( first == NULL ) return;
ListNode *p = h->next, *pr = NULL;
while ( p != NULL ) {
    h->next  = pr; //逆转first指针
   pr = h;  h = p;  p = p->next ; //指针前移
}
h->next  = pr;

ListNode *p, *head = new ListNode ( );
//创建表头结点, 其next域默认为NULL
while ( h != NULL ) {
    p = h;  h = h->next; //摘下first链头结点
    p->next = head->next;  head->next = p;//插入head链前端
 }
h = head->next;  delete head; //重置first, 删去表头结点





//我现在也搞不定   我再想想

 

--------------------next---------------------

阅读(1437) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~