Intern
რა განსხვავებაა დაკავშირებულ სიასა და მასივს შორის?
sobes.tech AI
პასუხი AI-სგან
მასივი ინახავს ელემენტებს მეხსიერების მიმდებარე უჯრებში, უზრუნველყოფს სწრაფ წვდომას ინდექსის მიხედვით (O(1)). ზომა ფიქსირებულია შექმნის დროს.
შეწყობილი სია ინახავს ელემენტებს ნოდებში, რომელთაც თითოეულში შედის მონაცემები და მიმთითებელი შემდეგ ნოდზე. ელემენტზე წვდომა ინდექსის მიხედვით მოითხოვს სიას გავლას (O(n)). ზომა დინამიურია.
ძირითადი განსხვავებები:
| მახასიათებელი | მასივი | შეწყობილი სია |
|---|---|---|
| განთავსება | მიმდებარე მეხსიერების უჯრებში | ნოდები მიმთითებლებით |
| წვდომა ინდექსით | სწრაფი (O(1)) | ნელი (O(n)) |
| დამატება/წაშლა | ნელი (O(n)) | სწრაფი (O(1)) დასაწყისში/სულში |
| ზომა | ფიქსირებული | დინამიური |
მაგალითი მასივში ელემენტის დამატების, ახალი მასივის შექმნას და ელემენტების კოპირებას მოითხოვს:
// ელემენტის დამატება მასივში
int[] ორიგინალურიმასივი = {1, 2, 3};
int ახალიმნიშვნელობა = 4;
int[] ახალიმასივი = new int[ორიგინალურიმასივი.length + 1];
System.arraycopy(ორიგინალურიმასივი, 0, ახალიმასივი, 0, ორიგინალურიმასივი.length);
ახალიმასივი[ორიგინალურიმასივი.length] = ახალიმნიშვნელობა;
შეწყობილი სიაში ელემენტის დამატება (სულში):
// ელემენტის დამატება შეწყობილ სიაში
class ნოდ {
int მონაცემები;
ნოდ შემდეგი;
ნოდ(int d) { მონაცემები = d; შემდეგი = null; }
}
// ...
ნოდ სათაური = new ნოდ(1);
ნოდ მეორე = new ნოდ(2);
სათაური.შემდეგი = მეორე;
ნოდ ბოლო = მეორე; // ვივარაუდოთ, რომ მეორე ბოლო ელემენტია
ნოდ ახალინოდ = new ნოდ(3);
ბოლო.შემდეგი = ახალინოდ;
ბოლო = ახალინოდ; // ბოლო განახლება