தரவமைப்பு

thumb|315x315px|ஒரு கையெழுத்து அடைவு (hash table) என்பது, படத்தில் உள்ளது போல, மதிப்புகளை கையெழுத்து அடுத்து அடைவில் சேர்க்கப்படும். எந்த மதிப்பையும் (படம், ஒலி, உரை) என்றாலும் அதனை எண் என மாற்றுவது கையெழுத்து செயல்முறை ("hashing algorithm") - ஒவ்வொரு அடைவின் தனிப்பட்ட முறையில் அமையும்.
தரவமைப்புக் கணினியிலில் தரவை திறமையாகக் கணினியில் ஓழுங்காக்கு முறை. சில பல சுருக்கமான தரவு வகைகள் தரவமைப்பு அமல்படுத்தி கணித இயக்கங்களுக்கு வழிவகுக்கும்.

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

## எடுத்துக்காட்டுகள்
பல வகையான தரவமைப்புகள் எளிய தொடக்க நிலை தரவு வகையால் கட்டமைக்கப்பட்டது:
* நெடு வரிசை (array) பல வரிசைப்படுத்தப்பட்ட பகுதியால் ஒன்றிணைக்கப்பட்டது. ஒவ்வொரு பகுதியும் முழு எண் கொண்டு அணுகப்படுகின்றன. இவை நினைவகத்தில் ஒரு தொடராக வைக்கப்படுகிறது. இதன் மொத்த கொள் அளவு நிரல் ஒட்டத்தில் தீர்மானிக்கப்படுவதில்லை.   
* தொடர்புறு அணி (associative array) நெடுவரிசையின் நெகிழ்வான தொடர்ச்சி. இவை திறவு-மதிப்பு இணையாகக் கட்டமைக்கப்பட்டது. இதன் குறியீடு எண் அல்லது எழுத்துச் சரமாக இருக்கலாம்.
* தொடர் பட்டியல் (linked list) என்பது ஒரு வகையான தரவமைப்பு; இதில் சேமிக்கப்பட்ட மதிப்புகள் ஒன்றை ஒன்று தொடர்ச்சியாக "அடுத்த" மதிப்பின் குறிப்பை (விலாசத்தை) மதிப்பின் கூடிய அம்சமாக சேர்ந்து பதிவு செய்திருக்கும். உதாரணமாக [2,99,27] என்ற எண்களை தொடர் பட்டியலில் சேமித்தால், 2 மதிப்பு அதன் கூடுதல் அம்சமாக 99 மதிப்பின் குறிப்பையும் சேமிக்கும். மதிப்பு 99 என்பது அடுத்த மதிப்பான 2-இன் குறிப்பையும் சேமிக்கும். ஆனால் மதிப்பு 2 என்பது அடுத்த குறிப்பை காலியாகவே வைத்திருக்கும். இதுவே தொடர் பட்டியல் என்றாகும்.
* அடுக்கு  (stack) என்ற தரவைப்பு பல மதிப்புகளை கொள்ளும்; இதன் பெரிதான அம்சம் மதிப்புகளை அடுக்கு தரவில் நுழைக்கும் வரிசை, இந்த மதிப்பினை அணுகும் வரிசைக்கு நேர் மாறானது. அதாவது [2,99,27] என்ற எண்களை வரிசையாக அடுக்கு தரவில் நுழைத்தால் - முதலில் 2, பின்பு 99, கடைசியாக 27.  இதையே அடுக்கில் இருந்து "மேலாக_எடு" என்ற செயல்முறையால் அணுகினால் நாம் நேர்மாறான வரிசையில் மதிப்புகளை அணுகலாம் - முதலில் 27, அடுத்து 99, கடைசியில் 2. இதுவே அடுக்கு தரவமைப்பின் அம்சம்.
* ஆவணம் (record) ஒரு மொத்த தரவமைப்பு. இஃது ஒரு கூட்டுத் தரவமைப்பு. இன்ன பிற தரவமைப்பின் மதிப்புகளை இஃது உள்ளடக்கும்.
* தொகுப்பு (set) ஒரு நகலில்லாத மதிப்புகளைச் சேகரிக்கும் தரவமைப்பு. மதிப்புகளின் வரிசைக்கு எந்த உத்தரவாதமுமில்லை.
* முனை-ஓரம் அடைவு (graph) மற்றும் மரம் (tree) கணுக்களால் இணைக்கப்பட்ட சுருக்கமான தரவு வகை. ஒரு கணு (அல்லது நுனி [node])   மற்ற கணுக்கான தொடர்பை தன்னகத்தே (அல்லது தனியாக) ஓரம் (edge) ஒன்றை கொண்டது. முனை-ஓரம் அடைவில் தேடல் மற்றும் வரிசைப்படுத்தும் பணிகளில் பயன்படுத்தப்படுகிறது. இவற்றின் அமைப்பு மதிப்பினால் பின்னப்பட்டுள்ளது. 
* பிரிவு(class) ஆவணம் மற்றும் வழிமுறையால் இயக்கப்படும் தரவமைப்பு. இது பொருள் நோக்கு நிரலாக்கத்தின் அடித்தளமாகும்.

## ஆதரவு
பல அடிதள நிரலாக்க மொழிகள் சிறு அளவு தரவமைப்புகளுக்கு ஆதரவளிக்கும். உயர்மட்ட நிரலாக்க மொழிகள் நெடுவரிசை, தொடர்புறு அணி இன்ன பிற தரவைப்புகளுக்கு ஆதரவளிக்கிறது. எ.டு: பைத்தான் நிரலாக்க மொழி நெடுவரிசை, தொடர், தொடர்புறு அணி, தொகுப்பு, ஐக்கியம் போன்ற தரவமைப்பல் உள்ளடக்கப்பட்டது.

## See also

## References

பகுப்பு:கணினி அறிவியல்