リンクされたリストは動的メモリ割り当てを使用します。つまり、それに応じて拡大および縮小します。これらはノードのコレクションとして定義されます。ここで、ノードにはデータとリンクという 2 つの部分があります。データ、リンク、およびリンク リストの表現は次のとおりです。 -
リンク リストには、次の 4 つの種類があります。
リンクされたリストの長さを見つけるために再帰的方法を使用します。ロジックは -
int length(node *temp){ if(temp==NULL) return l; else{ l=l+1; length(temp->next); } }
次は、リンクされたリストの長さを見つけるための C プログラムです。 list-
ライブデモ
#include#include typedef struct linklist{ int data; struct linklist *next; }node; int l=0; int main(){ node *head=NULL,*temp,*temp1; int len,choice,count=0,key; do{ temp=(node *)malloc(sizeof(node)); if(temp!=NULL){ printf(" enter the elements in a list : "); scanf("%d",&temp->data); temp->next=NULL; if(head==NULL){ head=temp; }else{ temp1=head; while(temp1->next!=NULL){ temp1=temp1->next; } temp1->next=temp; } }else{ printf("
Memory is full"); } printf("
press 1 to enter data into list: "); scanf("%d",&choice); }while(choice==1); len=length(head); printf("The list has %d no of nodes",l); return 0; } //recursive function to find length int length(node *temp){ if(temp==NULL) return l; else{ l=l+1; length(temp->next); } }
When 上記のプログラムを実行すると、次の結果が生成されます -
Run 1: enter the elements in a list: 3 press 1 to enter data into list: 1 enter the elements in a list: 56 press 1 to enter data into list: 1 enter the elements in a list: 56 press 1 to enter data into list: 0 The list has 3 no of nodes Run 2: enter the elements in a list: 12 press 1 to enter data into list: 1 enter the elements in a list: 45 press 1 to enter data into list: 0 The list has 2 no of nodes
以上がリンクリストの長さを求めるCプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。