Тема: списки С++
Створити однозв’язний лінійний список з 4-х елементів цілого типу. Знайти суму передостаннього та останнього елемента масиву. Видалити перший елемент списку. Порахувати кількість парних елементів. Вивільнити динамічну пам’ять.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → списки С++
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Створити однозв’язний лінійний список з 4-х елементів цілого типу. Знайти суму передостаннього та останнього елемента масиву. Видалити перший елемент списку. Порахувати кількість парних елементів. Вивільнити динамічну пам’ять.
Якщо я правильно розумію, треба крокувати від чогось такого:
typedef struct node
{
struct node* next;
int data;
} NODE;
Це можна доповнити класом-обгорткою, що міститиме вказівник на перший NODE (або ж можна працювати безпосередньо з NODE*).
Виділення пам'яті для одного вузла списку:
NODE* p=new NODE();
p->next=NULL
Щоб прикріпити до нього ще три елементи, робимо так:
NODE* q=p;
int i;
for (i=1; i<4; i++)
{
q->next=new NODE();//виділення пам'яті для наступного елемента
q=q->next;//перехід до нього
}
q->next=NULL; //останній вузол замість вказівника на наступний містить NULL
Видалити перший елемент просто: переводимо вказівник p, що вказує на перший елемент, на наступний:
p=p->next
Але, оскільки нам треба ще й звільнити пам'ять, перед цим треба скопіювати цей вказівник, а після — звільнити його з допомогою delete:
NODE* tmp=p;
p=p->next;
delete tmp;
Для доступу до числа, що зберігається в вузлі списку, використовуйте ім'я_вказівника -> data
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися