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);
    
        
    }
  • 相关阅读:
    dwr中的部分问题和总结
    UltraEdit常用快捷键
    Spring定时器StopWatch
    mybatis 教程(mybatis in action)
    Java中的session详解
    关于OutOfMemoryError的处理
    安卓版本和Api Level
    android通过adb wireless的使用
    adb端口被占用情况下如何杀掉进程
    解决Install failed uid changed
  • 原文地址:https://www.cnblogs.com/xnb123/p/8672124.html
Copyright © 2011-2022 走看看