zoukankan      html  css  js  c++  java
  • 单链表之头插法的理解!

    如图:头结点是*L。。。头结点一般储存单链表的长度的信息。

    首节点是(*L)->next。。。是储存元素的值和下一个元素的位置的信息。

    现在我想插入一个新的节点p。。。

    第一:新节点的指针域指向首节点。

    第二:修改头结点的指针域,使其指向新节点p。

    重点语录

    链表是以地址来发现元素的

    链表读一个数据,系统就申请一个存储单元。二者是同步的

    c++代码实现。

    #include<iostream.h>
    typedef int Elemtype;
    typedef struct node
    {
        Elemtype data;
        struct node *next;
    }Lnode,*Linklist;
    
    void Initlinklist(Linklist &head)
    {
        head=new Lnode;
        if(head!=NULL)
            head->next=NULL;
    }
    
    void Createlinklist(Linklist &head)
    {
        int n;
        Linklist p;                                //定义结点类型的指针。这个指针的类型如上图
        cin>>n;
        for(int i=0;i<n;i++)
        {
            p=new Lnode;                //为这个结点类型的指针p开辟空间
            cin>>p->data;
            p->next=head->next;            //修改新节点的指针域,使其指向首节点
            head->next=p;                //修改头结点的指点域,使其指向新节点p
        }
    }
    
    void Printlinklist(Linklist &head)
    {    
        Linklist p;
        p=head->next;                    
        while(p!=NULL)                    //结点数据不为空,就一直输出结点的值                    
        {
            cout<<p->data<<"	";
            p=p->next;
        }
    }
    
    
    void main()
    {
        Linklist head;
        Initlinklist(head);
        Createlinklist(head);
    
        
    }
  • 相关阅读:
    CStrFun
    CUrl
    CCrawl
    CHttp
    类的实例化
    #include文件时用双引号和尖括号的区别
    对于给定的若干个整数,要求计算它们的和!
    汉诺塔问题
    随机数的生成代码
    排列组合C++
  • 原文地址:https://www.cnblogs.com/xnb123/p/8672124.html
Copyright © 2011-2022 走看看