Junior — Middle
Ի՞նչ է երկու կողմանի կապակցված ցանկի վերջում տարր ավելացնելու գործողության ժամանակային բարդությունը։
sobes.tech AI
Պատասխան AI-ից
Երկկողմանի կապված ցանկի վերջում տարր ավելացնելու ժամանակային բարդությունը կախված է նրանից, թե արդյոք ցանկը ունի նշիչ վերջին տարրի (կուրծքավանդակի) վրա:
-
Եթե կա նշիչ կուրծքավանդակի վրա, ապա տարր ավելացնելը վերջում կատարվում է O(1) ժամանակում, քանի որ կարելի է ուղղակիորեն հասնել վերջին տարրին և ավելացնել նորին նրա հետևում:
-
Եթե նշիչ չկա, ապա անհրաժեշտ է անցնել ամբողջ ցանկը գլխից մինչև վերջին տարր, ինչը տևում է O(n) ժամանակ, որտեղ n — տարրերի քանակն է ցանկում:
շատ դեպքերում, երկկողմանի կապված ցանկերի իրականացման ժամանակ, օպտիմալացման համար պահվում է նշիչ վերջին տարրի վրա, ուստի այս գործողությունը սովորաբար համարվում է O(1)։