வரிசைக்கும் இணைக்கப்பட்ட பட்டியலுக்கும் உள்ள வேறுபாடு

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 3 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 8 மே 2024
Anonim
இணைக்கப்பட்ட பட்டியல்களுக்கான அறிமுகம் (தரவு கட்டமைப்புகள் & அல்காரிதம்கள் #5)
காணொளி: இணைக்கப்பட்ட பட்டியல்களுக்கான அறிமுகம் (தரவு கட்டமைப்புகள் & அல்காரிதம்கள் #5)

உள்ளடக்கம்


இடையிலான முக்கிய வேறுபாடு அணி மற்றும் இணைக்கப்பட்ட பட்டியல் அவற்றின் அமைப்பு குறித்து. வரிசைகள் உள்ளன குறியீட்டு அடிப்படையிலானது தரவு உறுப்பு ஒவ்வொரு குறியீடும் ஒரு குறியீட்டுடன் தொடர்புடையது. மறுபுறம், இணைக்கப்பட்ட பட்டியல் நம்பியுள்ளது குறிப்புகள் ஒவ்வொரு முனையும் தரவு மற்றும் முந்தைய மற்றும் அடுத்த உறுப்புக்கான குறிப்புகளைக் கொண்டுள்ளது.

அடிப்படையில், ஒரு வரிசை என்பது ஒரு பொதுவான தலைப்பு அல்லது மாறி பெயரின் கீழ் தொடர்ச்சியான நினைவக இடங்களில் சேமிக்கப்படும் ஒத்த தரவு பொருட்களின் தொகுப்பாகும்.

இணைக்கப்பட்ட பட்டியல் என்பது ஒரு தரவு கட்டமைப்பாகும், இது ஒவ்வொரு உறுப்பு அதன் அடுத்த உறுப்புடன் இணைக்கப்பட்டுள்ள உறுப்புகளின் வரிசையைக் கொண்டுள்ளது. இணைக்கப்பட்ட பட்டியலின் ஒரு உறுப்பில் இரண்டு புலங்கள் உள்ளன. ஒன்று தரவு புலம், மற்றொன்று இணைப்பு புலம், தரவு புலம் சேமித்து செயலாக்க வேண்டிய உண்மையான மதிப்பைக் கொண்டுள்ளது. மேலும், இணைக்கப்பட்ட பட்டியலில் அடுத்த தரவு உருப்படியின் முகவரியை இணைப்பு புலம் வைத்திருக்கிறது. ஒரு குறிப்பிட்ட முனையை அணுக பயன்படும் முகவரி ஒரு சுட்டிக்காட்டி என அழைக்கப்படுகிறது.


வரிசை மற்றும் இணைக்கப்பட்ட பட்டியலுக்கும் இடையிலான மற்றொரு குறிப்பிடத்தக்க வேறுபாடு என்னவென்றால், வரிசை ஒரு நிலையான அளவைக் கொண்டுள்ளது மற்றும் அதற்கு முன் அறிவிக்கப்பட வேண்டியது அவசியம், ஆனால் இணைக்கப்பட்ட பட்டியல் அளவோடு கட்டுப்படுத்தப்படவில்லை மற்றும் செயல்படுத்தலின் போது விரிவடைந்து சுருங்குகிறது.

  1. ஒப்பீட்டு விளக்கப்படம்
  2. வரையறை
  3. முக்கிய வேறுபாடுகள்
  4. தீர்மானம்

ஒப்பீட்டு விளக்கப்படம்

ஒப்பீட்டுக்கான அடிப்படைஅணிஇணைக்கப்பட்ட பட்டியல்
அடிப்படைஇது ஒரு குறிப்பிட்ட எண்ணிக்கையிலான தரவு உருப்படிகளின் நிலையான தொகுப்பாகும்.இது தரவு உருப்படிகளின் மாறுபட்ட எண்ணிக்கையை உள்ளடக்கிய ஒரு வரிசைப்படுத்தப்பட்ட தொகுப்பாகும்.
அளவுஅறிவிப்பின் போது குறிப்பிடப்பட்டுள்ளது.குறிப்பிட தேவையில்லை; மரணதண்டனை போது வளர மற்றும் சுருங்க.
சேமிப்பு ஒதுக்கீடு தொகுக்கும் நேரத்தில் உறுப்பு இடம் ஒதுக்கப்படுகிறது.இயங்கும் நேரத்தில் உறுப்பு நிலை ஒதுக்கப்படுகிறது.
உறுப்புகளின் வரிசை தொடர்ச்சியாக சேமிக்கப்படுகிறது தோராயமாக சேமிக்கப்பட்டது
உறுப்பை அணுகும்நேரடி அல்லது தோராயமாக அணுகப்பட்டது, அதாவது, வரிசை குறியீடு அல்லது சந்தாவைக் குறிப்பிடவும்.தொடர்ச்சியாக அணுகப்பட்டது, அதாவது, பட்டியலில் முதல் முனையிலிருந்து சுட்டிக்காட்டி மூலம் பயணிக்கும்.
உறுப்பு செருகல் மற்றும் நீக்குதல்மாற்றுவது தேவைப்படுவதால் மெதுவாக.எளிதான, வேகமான மற்றும் திறமையான.
தேடி பைனரி தேடல் மற்றும் நேரியல் தேடல்நேரியல் தேடல்
நினைவகம் தேவைகுறைவான மேலும்
நினைவக பயன்பாடுபயனற்றதிறமையான


வரிசையின் வரையறை

ஒரு வரிசை என்பது ஒரு குறிப்பிட்ட எண்ணிக்கையிலான ஒரேவிதமான கூறுகள் அல்லது தரவு உருப்படிகளின் தொகுப்பாக வரையறுக்கப்படுகிறது. ஒரு வரிசையில் ஒரு வகை தரவை மட்டுமே கொண்டிருக்க முடியும், அதாவது அனைத்து முழு எண்கள், அனைத்து மிதக்கும் புள்ளி எண்கள் அல்லது அனைத்து எழுத்துக்களும். ஒரு வரிசையின் அறிவிப்பு பின்வருமாறு:
int a;
தரவு வகை அல்லது வகை கூறுகளின் வரிசை கடைகளை int குறிப்பிடுகிறது. “A” என்பது ஒரு வரிசையின் பெயர், மற்றும் சதுர அடைப்புக்குறிக்குள் குறிப்பிடப்பட்டுள்ள எண் என்பது ஒரு வரிசை சேமிக்கக்கூடிய உறுப்புகளின் எண்ணிக்கை, இது வரிசையின் அளவு அல்லது நீளம் என்றும் அழைக்கப்படுகிறது.

வரிசைகளைப் பற்றி நினைவில் கொள்ள வேண்டிய சில கருத்துகளைப் பார்ப்போம்:

  • வரிசையின் பெயரை விவரிப்பதன் மூலம் ஒரு வரிசையின் தனிப்பட்ட கூறுகளை அணுகலாம், அதைத் தொடர்ந்து சதுர அடைப்புக்குறிக்குள் குறியீட்டு அல்லது சந்தா (வரிசையில் உள்ள தனிமத்தின் இருப்பிடத்தை தீர்மானித்தல்). எடுத்துக்காட்டாக, வரிசையின் 5 வது உறுப்பை மீட்டெடுக்க, நாம் ஒரு அறிக்கையை எழுத வேண்டும் a.
  • எந்தவொரு சந்தர்ப்பத்திலும் ஒரு வரிசையின் கூறுகள் தொடர்ச்சியான நினைவக இடத்தில் சேமிக்கப்படும்.
  • வரிசையின் முதல் உறுப்பு குறியீட்டு பூஜ்ஜியத்தைக் கொண்டுள்ளது. இதன் பொருள் முதல் மற்றும் கடைசி உறுப்பு முறையே a, மற்றும் ஒரு என குறிப்பிடப்படும்.
  • ஒரு வரிசையில் சேமிக்கக்கூடிய உறுப்புகளின் எண்ணிக்கை, அதாவது, ஒரு வரிசையின் அளவு அல்லது அதன் நீளம் பின்வரும் சமன்பாட்டால் வழங்கப்படுகிறது:
    (மேல் பிணைப்பு-கீழ் பிணைப்பு) + 1
    மேலே உள்ள வரிசைக்கு, அது (9-0) + 1 = 10 ஆக இருக்கும். எங்கே 0 என்பது வரிசையின் கீழ் எல்லை, மற்றும் 9 என்பது வரிசையின் மேல் எல்லை.
  • வரிசைகளை லூப் மூலம் படிக்கலாம் அல்லது எழுதலாம். நாம் ஒரு பரிமாண வரிசையைப் படித்தால், அதற்கு வாசிப்புக்கு ஒரு வளையமும் மற்றொன்று வரிசையை எழுதுவதற்கு (ing) தேவைப்படுகிறது, எடுத்துக்காட்டாக:
    ஒரு. ஒரு வரிசையைப் படிக்க
    for (i = 0; i <= 9; i ++)
    {ஸ்கேன்ஃப் (“% d”, & அ); }
    ஆ. ஒரு வரிசை எழுதுவதற்கு
    for (i = 0; i <= 9; i ++)
    {f (“% d”, அ); }
  • 2-D வரிசையின் விஷயத்தில், இதற்கு இரண்டு சுழல்கள் தேவைப்படும், அதேபோல் n- பரிமாண வரிசைக்கு n சுழல்கள் தேவைப்படும்.

வரிசைகளில் செய்யப்படும் செயல்பாடுகள்:

  1. வரிசை உருவாக்கம்
  2. ஒரு வரிசையில் பயணிக்கிறது
  3. புதிய கூறுகளின் செருகல்
  4. தேவையான கூறுகளை நீக்குதல்.
  5. ஒரு உறுப்பு மாற்றம்.
  6. வரிசைகளின் இணைத்தல்

உதாரணமாக

பின்வரும் நிரல் வரிசையின் வாசிப்பு மற்றும் எழுத்தை விளக்குகிறது.

#சேர்க்கிறது
#சேர்க்கிறது
void main ()
{
int a, i;
f ("வரிசையை உள்ளிடுக");
for (i = 0; i <= 9; i ++)
{
scanf ("% d", & a);
}
f ("வரிசையை உள்ளிடுக");
for (i = 0; i <= 9; i ++)
{
f ("% d n", அ);
}
getch ();
}

இணைக்கப்பட்ட பட்டியலின் வரையறை

இணைக்கப்பட்ட பட்டியல் என்பது ஒன்றோடு ஒன்று இணைக்கப்பட்ட சில தரவு கூறுகளின் குறிப்பிட்ட பட்டியல். இதில் ஒவ்வொரு உறுப்பு தர்க்கரீதியான வரிசையை குறிக்கும் அடுத்த உறுப்புக்கு சுட்டிக்காட்டுகிறது. ஒவ்வொரு உறுப்பு ஒரு முனை என்று அழைக்கப்படுகிறது, இது இரண்டு பகுதிகளைக் கொண்டுள்ளது.

தகவலை சேமிக்கும் தகவல் மற்றும் அடுத்த உறுப்பை சுட்டிக்காட்டும் POINTER. முகவரியை சேமிப்பதை நீங்கள் அறிந்திருப்பதால், சி இல் சுட்டிகள் எனப்படும் தனித்துவமான தரவு கட்டமைப்புகள் எங்களிடம் உள்ளன. எனவே பட்டியலின் இரண்டாவது புலம் ஒரு சுட்டிக்காட்டி வகையாக இருக்க வேண்டும்.

இணைக்கப்பட்ட பட்டியல்களின் வகைகள் ஒற்றை-இணைக்கப்பட்ட பட்டியல், இரட்டிப்பாக இணைக்கப்பட்ட பட்டியல், வட்ட இணைக்கப்பட்ட பட்டியல், வட்ட இரட்டை இணைக்கப்பட்ட பட்டியல்.

இணைக்கப்பட்ட பட்டியலில் செய்யப்படும் செயல்பாடுகள்:

  1. உருவாக்கம்
  2. பயணித்து
  3. செருகும்
  4. நீக்குதல்
  5. தேடி
  6. தொடுப்பு
  7. காட்சி

உதாரணமாக

இணைக்கப்பட்ட பட்டியலை உருவாக்குவதை பின்வரும் துணுக்கை விளக்குகிறது:

struct முனை
{
int எண்;
ஸ்டக்ட் நோட் * அடுத்து;
}
தொடக்க = NULL;
வெற்றிடத்தை உருவாக்கு ()
{
typedef struct node NODE;
NODE * p, * q;
கரி தேர்வு;
முதல் = NULL;
செய்
{
p = (NODE *) malloc (sizeof (NODE));
f ("தரவு உருப்படியை உள்ளிடுக n");
scanf ("% d", & ப -> எண்);
if (p == NULL)
{
q = தொடக்கம்;
போது (q -> அடுத்து! = NULL)
{q = q -> அடுத்தது
}
p -> அடுத்த = q -> அடுத்தது;
q -> = ப;
}
வேறு
{
p -> அடுத்த = தொடக்கம்;
தொடக்க = ப;
}
f ("நீங்கள் தொடர விரும்புகிறீர்களா (வகை y அல்லது n)? n");
scanf ("% c", & தேர்வு);
}
while ((தேர்வு == y) || (தேர்வு == Y));
}

  1. ஒரு வரிசை என்பது தரவு கட்டமைப்பில் ஒத்த வகை தரவு கூறுகளின் தொகுப்பைக் கொண்டுள்ளது, அதே சமயம் இணைக்கப்பட்ட பட்டியல் பழமையான தரவு கட்டமைப்பாக கருதப்படுகிறது, இது முனைகள் என அழைக்கப்படும் வரிசைப்படுத்தப்படாத இணைக்கப்பட்ட கூறுகளின் தொகுப்பைக் கொண்டுள்ளது.
  2. வரிசையில் கூறுகள் குறியீட்டுக்கு சொந்தமானவை, அதாவது, நீங்கள் நான்காவது உறுப்புக்குள் செல்ல விரும்பினால், மாறி பெயரை அதன் குறியீட்டுடன் அல்லது சதுர அடைப்புக்குறிக்குள் உள்ள இடத்துடன் எழுத வேண்டும்.
    இணைக்கப்பட்ட பட்டியலில் இருந்தாலும், நீங்கள் தலையிலிருந்து தொடங்கி நான்காவது உறுப்புக்கு வரும் வரை உங்கள் வழியில் செயல்பட வேண்டும்.
  3. இணைக்கப்பட்ட பட்டியல் நேரியல் நேரத்தை எடுக்கும் போது ஒரு உறுப்பு வரிசையை அணுகுவது வேகமாக இருக்கும், இது சற்று மெதுவாக இருக்கும்.
  4. வரிசைகளில் செருகல் மற்றும் நீக்குதல் போன்ற செயல்பாடுகள் நிறைய நேரம் எடுத்துக்கொள்கின்றன. மறுபுறம், இணைக்கப்பட்ட பட்டியல்களில் இந்த செயல்பாடுகளின் செயல்திறன் வேகமாக உள்ளது.
  5. வரிசைகள் நிலையான அளவு கொண்டவை. இதற்கு மாறாக, இணைக்கப்பட்ட பட்டியல்கள் மாறும் மற்றும் நெகிழ்வானவை, மேலும் அதன் அளவை விரிவுபடுத்தி சுருக்கலாம்.
  6. ஒரு வரிசையில், தொகுக்கப்பட்ட நேரத்தில் நினைவகம் ஒதுக்கப்படும், இணைக்கப்பட்ட பட்டியலில் அது செயல்படுத்தல் அல்லது இயக்க நேரத்தில் ஒதுக்கப்படும்.
  7. கூறுகள் வரிசைகளில் தொடர்ச்சியாக சேமிக்கப்படுகின்றன, அதேசமயம் அது இணைக்கப்பட்ட பட்டியல்களில் தோராயமாக சேமிக்கப்படுகிறது.
  8. வரிசையில் உள்ள குறியீட்டிற்குள் உண்மையான தரவு சேமிக்கப்படுவதால் நினைவகத்தின் தேவை குறைவாக உள்ளது. மாறாக, கூடுதல் அடுத்த மற்றும் முந்தைய குறிப்புக் கூறுகளை சேமிப்பதன் காரணமாக இணைக்கப்பட்ட பட்டியல்களில் அதிக நினைவகம் தேவை.
  9. கூடுதலாக, நினைவக பயன்பாடு வரிசையில் திறமையற்றது. மாறாக, நினைவக பயன்பாடு வரிசையில் திறமையானது.

தீர்மானம்

வரிசை மற்றும் இணைக்கப்பட்ட பட்டியல்கள் தரவு கட்டமைப்புகளின் வகைகள் அவற்றின் அமைப்பு, அணுகல் மற்றும் கையாளுதல் முறைகள், நினைவக தேவை மற்றும் பயன்பாடு ஆகியவற்றில் வேறுபடுகின்றன. அதன் செயல்பாட்டில் குறிப்பிட்ட நன்மை மற்றும் தீமைகள் உள்ளன. இதன் விளைவாக, ஒன்று தேவைக்கேற்ப பயன்படுத்தப்படலாம்.