单链表 尾插法

来源:互联网 发布:淘宝上的atinis可靠吗 编辑:程序博客网 时间:2024/06/07 17:52
LinkList CreatListR1(void)      {//用尾插法建立带头结点的单链表          char ch;          LinkList head=(ListNode *)malloc(sizeof(ListNode));//生成头结点          ListNode *s,*r;  //工作指针          r=head;    // 尾指针初值也指向头结点          while((ch=getchar())!='\n'){              s=(ListNode *)malloc(sizeof(ListNode));//生成新结点              s->data=ch;   //将读入的数据放入新结点的数据域中              r->next=s;              r=s;            }          r->next=NULL;//终端结点的指针域置空,或空表的头结点指针域置空          return head;       } r->next=s;r=s; 
尾插法是向链表尾部逐渐插入结点的,像算法中描述的一样,然后r先指向头指针,s是要逐个插入的结点的指针,r->next=s这句是说把s插入头指针之后,成为第一个结点,意思就是说把s结点接入到链表之中了,然后接着r=s这句是让r指针指向刚刚插入的那一结点,在这个节点之后进行进一步的插入,算法还是r->next=s,逐个逐个往尾部插入结点,直到最后一个结点的指针域为空r->next=NULL跳出循环。

0 0
原创粉丝点击