單鏈表之頭插法的理解!


如圖:頭結點是*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<<"\t";
        p=p->next;
    }
}


void main()
{
    Linklist head;
    Initlinklist(head);
    Createlinklist(head);

    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM