Hash ბიბლიოთეკები C პროგრამისტებისთვის

Hash ბიბლიოთეკები C პროგრამისტებისთვის

ამ გვერდზე მოცემულია ბიბლიოთეკების კოლექცია, რომელიც დაგეხმარებათ C. C. ბიბლიოთეკებში პროგრამირების პროცესში, აქ არის ღია წყარო და გამოიყენება მონაცემთა შენახვაში, თქვენივე დაკავშირებული სიის და ა.შ. მონაცემების სტრუქტურის შესაქმნელად.

Uthash

Troy D. Hanson- ის მიერ შემუშავებული, ნებისმიერი C სტრუქტურა შეიძლება შენახული იქნას hash ცხრილში uthash გამოყენებით. უბრალოდ შეიტანეთ # ლისტინგი "uthash.h" შემდეგ დაამატეთ UT_hash_handle სტრუქტურას და შეარჩიეთ ერთი ან მეტი ველი თქვენს სტრუქტურაში, რომ იმოქმედოთ როგორც მთავარი. შემდეგ გამოიყენეთ HASH_ADD_INT, HASH_FIND_INT და მაკროები, რომ შეინახოთ, მოიხსნათ ან წაშალოთ ნივთები ჰაშის ცხრილიდან. იგი იყენებს int, string და binary გასაღებებს.

ჯუდი

Judy არის C ბიბლიოთეკა, რომელიც ახასიათებს მრავალფეროვანი დინამიური მასივი. ჯუდი მასივები გამოცხადებულია null მაჩვენებლით და მოიხმარენ მეხსიერებას მხოლოდ დასახლებული პუნქტის დროს. მათ შეუძლიათ გაიზარდოს, თუ სასურველი იქნება ყველა არსებული მეხსიერება. ჯუდის მთავარი სარგებელი არის დონის გაფართოება, მაღალი ხარისხის და მეხსიერების ეფექტურობა. იგი შეიძლება გამოყენებულ იქნას დინამიურად ზომის მასივებისთვის, ასოციაციური მასივებით ან მარტივი გამოსაყენებელი ინტერფეისით, რომელიც არ საჭიროებს გაფართოებას ან შეკუმშვას და არ შეიძლება შეცვალოს მრავალი საერთო მონაცემთა სტრუქტურა, მაგალითად, მასივები, სპარსი მასივები, ჰაში მაგიდები, B- ხეები, ორობითი ხეები, ხაზოვანი სიები, სკეიტები, სხვა სახის და ძებნის ალგორითმები და დათვლის ფუნქციები.

SGLIB

SGLIB მოკლეა მარტივი ზოგადი ბიბლიოთეკისთვის და შედგება ერთი სათაურის ფაილი sglib.h, რომელიც ითვალისწინებს ყველაზე გავრცელებული ალგორითმების ზოგადი განხორციელებას მასივების, სიების, დალაგებული სიებისა და წითელი შავ ხეებისთვის. ბიბლიოთეკა ზოგადია და არ განსაზღვრავს საკუთარი მონაცემთა სტრუქტურას. ამის ნაცვლად იგი მოქმედებს მომხმარებლის მიერ განსაზღვრულ მონაცემთა სტრუქტურებზე ზოგადი ინტერფეისის საშუალებით. იგი ასევე არ გამოყოფს ან არ ანაწილებს რაიმე მეხსიერებას და არ არის დამოკიდებული მეხსიერების კონკრეტულ მენეჯმენტზე.

ყველა ალგორითმი ხორციელდება მაკროების სახით, რომლებიც პარამეტრიზირებულია მონაცემთა სტრუქტურის ტიპისა და შედარების ფუნქციის მიხედვით (ან შედარების მაკრო). რამდენიმე სხვა ზოგადი პარამეტრი, როგორიცაა დაკავშირებული შემდეგი სიების „შემდეგი“ ველი, შეიძლება დაგჭირდეთ ზოგიერთ ალგორითმსა და მონაცემთა სტრუქტურაში.