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

C言語を使用したリンクリストのヘッドおよびテール要素ロジックの削除。


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

ノードには、データとリンクの2つの部分があります。これらについて以下に説明します。

C言語を使用したリンクリストのヘッドおよびテール要素ロジックの削除。

リンクリストの操作

リンクリストの操作には、次の3種類があります-

  • 挿入
  • 削除
  • トラバース

削除

  • ノードを特定します。
  • ノードの割り当てを解除してもリストが未接続のコンポーネントにならないようにリンクを調整します。
  • 削除する要素を返す/表示します。
  • メモリの割り当てを解除します。

ヘッド要素を削除

以下の手順に従って、Cプログラミング言語のhead要素を削除します。

1. void del_head()
2. {
3. int x;
   Node *temp;
4. if(Head==NULL)
5. {
6. printf("List is empty");
7. return;
8. }
9. x=Head->ele;
10. temp=Head;
11. if(Head==Tail)
12. Head=Tail=NULL:
13. Else
14. Head=Head->next;
15. printf("Deleted element %d",x);
16. free(temp);
17. }

ここで

ステップ4-リストが空かどうかをチェックします。

ステップ9-削除する要素を読み取ります。

ステップ10-一時ポインタによって参照されるヘッド。

ステップ11-最後の削除を確認します。

ステップ14-ヘッドポインタをリスト内の次の要素に移動します。

ステップ15-削除する要素を表示します。

ステップ16-メモリの割り当てを解除します。

テール要素を削除

以下の手順に従って、Cプログラミング言語のテール要素を削除します。

1. void del_tail()
2. {
3. int x;
4. Node *temp;
5. if(Head==NULL)
6. {
7. printf("List is empty");
8. return;
9. }
10. temp=Head;
11. while(temp->next !=Tail)
12. temp=temp->next;
13. x=Tail->ele;
14. Tail=temp;
15. Temp=temp->next
16. Tail->next=NULL;
17. printf("Deleted element %d",x);
18. free(temp);
19. }

ここで

ステップ4-リストが空かどうかをチェックします。

ステップ10、11、12-一時ポインタをリストの最後の1つのノードに移動します。

ステップ13-削除するテール要素を読み取ります。

ステップ14-テールポインタを最後の1つのノードに移動します。

ステップ15-一時ポインタをリストの最後のノードに移動します。

ステップ16-テールノードから一時ノードへの参照を削除します。

ステップ17-削除する要素を表示します。

ステップ18-メモリの割り当てを解除します。


  1. 実際にC言語で反転せずに、リンクリストの反転を印刷します

    タスクは、再帰関数を使用して、指定されたリンクリストの逆を印刷することです。プログラムは逆に印刷する必要がありますが、リストを逆にしないでください。つまり、ノードの順序は同じままです。 ここで、プログラムは、リストの最後のノードに格納されているNULLが調べられ、ヘッドノードのデータが出力されるまで、最初のノードのアドレスを含むヘッドポインタを次のノードに移動します。 例 Input: 29 34 43 56 Output: 56 43 34 29 まず、ノードがリストに挿入され、挿入されたノードを指すポインターが開始されます。最終リストが作成された後、一時ポインタが最初のノードポイ

  2. Cプログラムで余分なスペースや変更を加えずに、リンクリストの裏面を印刷します。

    タスクは、余分なスペースを使用せずにリンクリストの最後からノードを印刷することです。つまり、余分な変数はなく、最初のノードを指すヘッドポインターが移動します。 例 Input: 10 21 33 42 89 Output: 89 42 33 21 10 再帰的アプローチ(余分なスペースを使用)、リンクリストの反転(指定されたリンクリストの変更が必要)、スタック上の要素のプッシュ、要素のポップと表示など、リンクリストを逆の順序で印刷するソリューションは多数あります。 1つずつ(スペースO(n)が必要)、これらのソリューションはO(1)よりも多くのスペースを使用しているようです。 O(