[C/C++] LinkedList with Queue, Stack Implemented

Data Structure สุด Classic ที่เราต้องเขียนเอง :)
ถ้าต้องการทำ Dynamic List ขึ้นมาใช้ในภาษา C/C++


จากภาพเนี่ย ลักษณะของข้อมูลแต่ละตัว ก็จะเก็บ Data พร้อมกับ Pointer ที่จะเอาไว้ชี้
ว่าตัวต่อไปคือตัวไหน ? ไม่เหมือนกับ Array ข้อมูลเรียงต่อกันตั้งแต่ต้นอยู่แล้วนะครับ :)

แน่นอนว่า เราสามารถเลี่ยงไปใช้ list, vector, queue, stack ...
ใน C++ STL (Standard Template Library) ได้
แต่ถ้าเป็นภาษา C ล่ะ ถ้าเขาไม่ให้ใช้ STL ล่ะ ยุ่งเลย :P


มาเล่นเขียนทดสอบการใช้งานกันก่อน :) แล้วค่อยไป Implement method กัน แน่นอน จะเห็นได้ว่า LinkedList ตัวนี้ทำงานกับ Integer บนเท่านั้น ดังนั้นถ้าใครอยากเอา LinkedList ไปใช้กับ Data แบบอื่นก็ต้องเปลี่ยนกันยาวเลย 
ให้สังเกตุจาก method นะครับ ... เราสามารถใช้ Queue และ Stack ตามที่กล่าวไว้ในชื่อ Blog ได้ด้วย ... 
การใช้ Queue ก็คือ addNode(); และ removeFromHead(); -- FIFO
การใช้ Stack คือ addToHead(); และ removeFromHead(); -- FILO
Implement method โดยเริ่มจาก Constructor, Destructor ก่อน
ปิดท้ายด้วย Private Method :)

เนื่องจาก Code นี้ยาว ... ใครเลื่อนดูมาได้จนถึงตรงนี้ผมก็ใจดีจัดไว้ให้ที่ Gist นะ :)


ลองนำไปใช้ดูนะครับ :) 

Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android