Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

動的リンクリストを使用して車の情報を保存するCプログラム。


リンクリストは動的メモリ割り当てを使用します。つまり、それに応じて拡大および縮小します。ノードの集まりです。

ノードには次の2つの部分があります-

  • データ
  • リンク

リンクリストの種類

Cプログラミング言語のリンクリストの種類は次のとおりです-

  • 単一/単一リンクリスト
  • 二重/二重リンクリスト
  • 循環単一リンクリスト
  • 循環二重リンクリスト

アルゴリズム

動的リンクリストを使用して車の情報を保存するには、以下のアルゴリズムを参照してください。

ステップ1-構造変数を宣言します。

ステップ2-表示する関数定義を宣言します。

ステップ3-動的メモリ割り当てを変数に割り当てます。

ステップ4-dowhileループを使用して車の情報を入力します。

ステップ5-ステップ2に進む表示機能を呼び出します。

以下は、動的リンクリストを使用して車の情報を保存するためのCプログラムです-

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node{
   char model[10],color[10];
   int year;
   struct node *next;
};
struct node *temp,*head;
void display(struct node *head){
   temp=head;
   while(temp!=NULL){
      if(temp->year>2010 && (strcmp("yellow",temp->color)==0))
      printf(" %s \t\t %s \t\t %d",temp->model,temp->color,temp->year);
      temp=temp->next;
      printf("\n");
   }
}
int main(){
   int n;
   char option,enter;
   head=(struct node *)malloc(sizeof(struct node));
   temp=head;
   do{
      printf("\nenter car model: ");
      scanf("%s",temp->model);
      printf("enter car color: ");
      scanf("%s",temp->color);
      printf("enter car year: ");
      scanf("%d",&temp->year);
      printf("\nDo you want continue Y(es) | N(o) : ");
      scanf("%c",&enter);
      scanf("%c",&option);
      if (option!='N'){
         temp->next=(struct node *)malloc(sizeof(struct node));
         temp=temp->next;
      } else {
         temp->next=NULL;
      }
   }while(option!='N');
   display(head);
   return 0;
}

出力

上記のプログラムを実行すると、次の出力が生成されます-

enter car model: I20
enter car color: white
enter car year: 2016
Do you want continue Y(es) | N(o) : Y
enter car model: verna
enter car color: red
enter car year: 2018
Do you want continue Y(es) | N(o) : Y
enter car model: creta
enter car color: Maroon
enter car year: 2010
Do you want continue Y(es) | N(o) : N

  1. Cプログラムのリンクリストの最後からn番目のノードのプログラム

    n個のノードがある場合、タスクはリンクリストの最後からn番目のノードを印刷することです。プログラムは、リスト内のノードの順序を変更してはなりません。代わりに、リンクリストの最後からn番目のノードのみを出力する必要があります。 例 Input -: 10 20 30 40 50 60    N=3 Output -: 40 上記の例では、最初のノードからカウントnノードまでのノードがトラバースされます(10、20、30、40、50、60)。したがって、最後から3番目のノードは40です。 リスト全体をトラバースする代わりに、この効率的なアプローチに従うことができます-

  2. リンクリストを使用してグラフを表現するC++プログラム

    グラフの接続行列は、メモリに保存するグラフの別の表現です。この行列は正方行列ではありません。接続行列の次数はVxEです。ここで、Vは頂点の数、Eはグラフのエッジの数です。 この行列の各行に頂点を配置し、各列にエッジを配置します。エッジe{u、v}のこの表現では、列eの場所uとvに対して1でマークされます。 隣接行列表現の複雑さ 接続行列表現は、計算中にO(V x E)のスペースを取ります。完全グラフの場合、エッジの数はV(V-1)/2になります。したがって、接続行列はメモリ内でより大きなスペースを取ります。 入力: 出力: アルゴリズム add_edge(ad