Тема: Лінійний однозв’язний список
У мене є програма за допомогою якої користувач заповнує інформаційні поля з 10 вузлів однозв’язного списку
Мені потрібно заповнити і додати новий вузол після наступного вузла з аналогічним інформаційним полем.
Яким чином це можна реалізувати?
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
int info;
struct Node *next;
} TypeNode;
TypeNode * CreateNode(TypeNode * LastNode);
TypeNode *head = NULL;
int main()
{
system("chcp 1251");
system("cls");
printf("Заповніть числами інформаційні поля списку:\n");
TypeNode *cur = NULL;
for(int i=0;i<10;i++)
{
printf("Вузол %d: ", i);
cur = CreateNode(cur);
}
printf("\n");
printf("Вихідні дані:\n");
printf("——————————————\n");
TypeNode * p0 = head;
int k=0, d=0;
while (p0!=NULL)
{
printf("Вузол %d: %d\n", k, p0->info);
printf("——————————————\n");
p0 = p0->next;
k++;
}
printf("Додавання нового вузла\n"); //створення нового вузла
printf("Новий вузол: ");
return 0;
}
TypeNode * CreateNode(TypeNode * LastNode)
{
TypeNode * newNode;
newNode = (TypeNode*)malloc(sizeof(TypeNode));
scanf("%d", &newNode->info);
newNode->next = NULL;
if (head==NULL)
head=newNode;
else
LastNode->next = newNode;
return newNode;
}