注册 登录
编程论坛 数据结构与算法

线性表中逆位序创建链表与顺序创建链表的原理解释。。真心求教?

飞飞飞不动 发布于 2012-09-23 20:46, 975 次点击
  void initlistn(lnode *&head,int n){
      initlist(head);     //调用空表  
      lnode *p;
      for(int i=0;i<n;i++){
          p=new  lnode;
          cin>>p->data;
          p->next=head->next;
          head->next=p;
        }
 }
    这是一个逆位序创建的链表函数,但是我不懂什么叫逆位序?以及 p->next=head->next;  head->next=p;这两句的含义。希望大神具体给个解释!
</n;i++){
      





void initlistn(lnode *&head,int n){
      initlist(head);     //调用空表  
      lnode *p=head,*s;
      for(int i=0;i<n;i++){
          s=new lnode;
          cin>>s->data;
          s->next=NULL;
          p->next=s;
          p=s;
       }
 }


这是顺序的链表,依然不懂  s->next=NULL;  p->next=s;   p=s;这几句的含义,求指教。谢了!
</n;i++){

2 回复
#2
世界模型2012-09-23 23:23
回复 楼主 飞飞飞不动
/*尾插法 建立单链表*/
{
....
    s->data=ch;
    s->next=p;//将节点p插入单链表
    p=s;//指针后移
}
  s->next=NULL;//将最后节点(终端节点) 指针域置空
#3
zhu2240392012-09-26 22:35
   head为头 的话  如果是逆位序的话  那么新创建的节点  的next 指向 head  新建立的节点 成为新的head节点  重复这个过程
   如果是顺序的话 ,这个你应该是理解的

[ 本帖最后由 zhu224039 于 2012-9-26 23:20 编辑 ]
1