リンクリストの基本1(超シンプル)-長さnの単一リンクリストを作成します

まず、リンクリストとは何かを理解しましょう。
素人の言葉で言えば、リンクリストは一種のチェーンストレージ構造であり、抽象的に理解して鉄のチェーンとして想像することができます。鉄のチェーンは鉄のリングとインターロックリンクで構成されていません!次に、各フープは1呼び出すことができます节点。私たちはそれぞれのフープに二つの小さな箱を取り付けた場合は、2つの小さなボックスのいずれかが呼び出され数据域、各ノードのデータが格納され、他のが呼ばれる場所指针域これは、次のいずれか。ノードの铁环アドレス)。上の写真を見てください。
44444でここに写真の説明を挿入します
リンクリストのノードは次のようになります。以下では、複数のノードをつなぎ合わせてリンクリストを作成します。
ここに写真の説明を挿入
各ノードのアドレスをA、B、Cに設定します。最初のノードのポインタフィールドには2番目のノードのアドレスBが格納され、2番目のノードのポインタフィールドには3番目のノードのアドレスが格納されることに注意してください。このように、各ノードは一緒に着用されます。これは、最も単純なリンクリスト、単一リンクリストです。
コードの実装を見てみましょう。
最初にノードの表現を見てみましょう。

typedef struct lianbiao
{
    
    
        int date;//数据域
        struct lianbiao *pnext;//地址域
}link;

次に、フープのようにつなぎ合わせてコードを追加する必要があります。

#include <stdio.h>
#include <stdlib.h>

typedef struct lianbiao
{
    
    
        int date;
        struct lianbiao *pnext;
}link;
link *pnew;//新节点
link *phead;//头节点
link *ptemp;//临时节点
int count=1;
void creat(void);
void add(void);
int main()
{
    
    
    int n,i;
    printf("请输入所需要创建的链表长度,不可为0\n");
    scanf("%d", &n);
    creat();
    for(i=0;i<n-1;i++)
    {
    
    
        add();
    }
  printf("链表创建完毕,输出链表所有数据\n");

  //printf("%d ", phead->date);
  for(ptemp=phead;ptemp!=NULL;ptemp=ptemp->pnext)
   {
    
    
       printf("%d ", ptemp->date);
   }
   return 0;
}
void creat(void)//创建头节点
{
    
    
    phead=(link*)malloc(sizeof(link));
    phead->pnext=NULL;
    phead->date=0;
    //memset(link,0,sizeof(link));
}
void add(void)//添加节点
{
    
    
    pnew=(link*)malloc(sizeof(link));
    pnew->date=count;
    pnew->pnext=0;
    ptemp=phead;
    while(ptemp->pnext!=NULL)
    {
    
    
        ptemp=ptemp->pnext;
    }
    ptemp->pnext=pnew;
    //pnew=NULL;
    count++;
}

運用結果:ご
ここに写真の説明を挿入
不明な点がございましたら、コメント欄または非公開でご連絡ください!あなたのレビューをありがとう、そして訂正してコミュニケーションすることを歓迎します。

おすすめ

転載: blog.csdn.net/qq_42695024/article/details/109380517