มีไลบรารี C โอเพ่นซอร์สที่มีโครงสร้างข้อมูลทั่วไปหรือไม่ [ปิด]


111

ฉันกำลังมองหาห้องสมุด C ที่มีโครงสร้างข้อมูลที่นำมาใช้ใหม่ที่เหมือนกันเช่นเชื่อมโยงรายการตารางกัญชา ฯลฯ สิ่งที่ต้องการแหล่งกระจายกับนายอัลกอริทึมด้วย C (ปกอ่อน) โดยไคล์เลา


เว็บไซต์อื่น ๆ เหมาะกับคำถามประเภทนี้มากกว่า slant.co/improve/topics/19233
ideasman42

คำตอบ:


57

BSD que.hมี:

  • SLIST = รายการที่เชื่อมโยงแบบเดี่ยว
  • LIST = รายการที่เชื่อมโยงแบบทวีคูณ
  • SIMPLEQ = คิวที่เชื่อมโยงแบบเดี่ยว
  • TAILQ = คิวที่เชื่อมโยงแบบทวีคูณ

BSD tree.hมี:

  • RB - ต้นไม้สีแดงดำ
  • SPLAY - ต้นไม้สาด

ดูคิว (3)และต้นไม้ (3)หน้าคนสำหรับรายละเอียด ฉันชอบพวกเขามากเพราะเป็นมาโคร C ที่บริสุทธิ์โดยไม่ต้องพึ่งพา (ไม่ใช่แม้แต่ libc) นอกจากนี้ด้วยใบอนุญาต BSD คุณไม่ต้องกังวลเกี่ยวกับข้อ จำกัด ของ บริษัท ใด ๆ ที่มี GPL


36

Gnome มีไลบรารีที่ยอดเยี่ยมสำหรับสิ่งนี้เรียกว่าGlibพร้อมโครงสร้างข้อมูลที่มีประโยชน์มากมายและยูทิลิตี้อื่น ๆ เช่นกัน


30

gnulibไลบรารีพกพา gnu

แจกจ่ายเป็นซอร์สโค้ด รายการนี้มาจากรายการโมดูลซึ่งรวมถึงสิ่งอื่น ๆ จำนวนมาก สิ่งหนึ่งที่น่าสนใจคือ "c-stack: การจัดการกับ Stack ล้นทำให้โปรแกรมออก"

  • รายการ
  • รายการอาร์เรย์
  • carray รายการ
  • รายการที่เชื่อมโยง
  • รายการ avltree
  • rbtree รายการ
  • เชื่อมโยงรายการแฮช
  • รายการ avltreehash
  • rbtreehash รายการ
  • รายการย่อย (ประเภทข้อมูลตามลำดับที่สนับสนุนโดยรายการอื่น)
  • oset (ชุดคำสั่งบทคัดย่อ)
  • อาร์เรย์ oset
  • avltree-oset
  • rbtree-oset

โปรดทราบว่าตัวเลือกนี้ได้รับอนุญาตจาก GPL ดังนั้นจึงสามารถใช้ได้ตามกฎหมายในซอฟต์แวร์ที่ได้รับอนุญาตจาก GPL เท่านั้น
Noah Andrews

19

SGLIBเป็นไลบรารีโครงสร้างข้อมูลทั่วไปที่ยอดเยี่ยม ปัจจุบันไลบรารีมีการใช้งานทั่วไปสำหรับ:
การเรียงลำดับอาร์เรย์
รายการที่
เชื่อมโยงรายการที่เชื่อมโยงที่เรียงลำดับรายการที่
เชื่อมโยงสองครั้ง
ต้นไม้สีแดงดำที่
แฮชคอนเทนเนอร์

เร็วมากเร็วกว่ากะล่อน ได้รับแรงบันดาลใจจากไลบรารีเทมเพลตมาตรฐาน ดาวน์โหลดที่นี่

ทางออกก็คือซอฟแวร์ความโกลาหลที่น่าสนใจ ไลบรารีมาโคร C:
kbtree.h : ไลบรารีB-tree ที่มีประสิทธิภาพใน C.
khash.h: ไลบรารีตารางแฮชที่รวดเร็วและน้ำหนักเบาใน C.
kvec.h: คอนเทนเนอร์เวกเตอร์อย่างง่ายใน C.

ซอฟต์แวร์ Sglib และ Attractive Chaos คือไลบรารีมาโคร C การใช้ void * เพื่อใช้งานคอนเทนเนอร์ทั่วไปใน C อาจไม่มีประสิทธิภาพ มาโคร C เลียนแบบเทมเพลต C ++ และมีประสิทธิภาพเทียบเท่ากับเทมเพลต C ++


คำแนะนำที่ดี - ฉันไม่เคยได้ยิน SGLIB มาก่อน
Michael Burr

ลิงก์ "ดาวน์โหลด" สำหรับโปรเจ็กต์ SGLIB เสีย ดูเหมือนจะเสียชีวิต ... : /
luis.espinal

@ luis.espinal ยังสามารถดาวน์โหลดได้จากfreecode.com/projects/sglib
Rob

ดูเหมือนว่า libs ทั้งสองนี้จะหายไปแล้ว
Michael Foukarakis



0

จุดนี้ไปยังหน้าบอกว่าห้องสมุดที่มีการย้ายออกไปcode.google.com/p/clibutils
stakx - ไม่ร่วมให้ข้อมูลอีกต่อไปเมื่อ

และตอนนี้ดูเหมือนว่า: github.com/davinash/cstlยังไม่ได้รับการอัปเดตตั้งแต่ปี 2555
domen

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.