Search
Search titles only
By:
Search titles only
By:
Log in
Register
Search
Search titles only
By:
Search titles only
By:
Menu
Install the app
Install
Forums
New posts
All threads
Latest threads
New posts
Trending threads
Trending
Search forums
What's new
New posts
New ads
New profile posts
Latest activity
Free Ads
Latest reviews
Search ads
Members
Current visitors
New profile posts
Search profile posts
Contact us
Latest ads
Ad icon
Video Content Creator
pramukag
Updated:
Sunday at 6:10 AM
Ad icon
QA Engineer Intern
pramukag
Updated:
Sunday at 6:07 AM
Ad icon
Sell your Land, House on idamata.lk for FREE
sajith.xp.pk
Updated:
Thursday at 9:03 AM
Handmade Character Soft Toys
anil1961
Updated:
Jun 23, 2026
Bodim.lk out now !
Manoj Suranga Bandara
Updated:
Jun 21, 2026
Electronics
Vehicles
Property
Search
Reply to thread
Forums
General
ElaKiri Help
stacks, ques and linked list in C
Get the App
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="san**" data-source="post: 14610419" data-attributes="member: 392854"><p><span style="color: Blue"><span style="font-size: 18px">Defining singly linked list</span></span></p><p></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">#include <iostream.h></span></span></p><p><span style="color: Black"><span style="font-size: 15px">#include <conio.h></span></span></p><p><span style="color: Black"><span style="font-size: 15px">struct NodeType</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px">int number;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">NodeType *next;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">};</span></span></p><p><span style="color: Black"><span style="font-size: 15px">int main()</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px">NodeType *head, //pointer to point to the first node</span></span></p><p><span style="color: Black"><span style="font-size: 15px">*current, //pointer to keep track of pos in list</span></span></p><p><span style="color: Black"><span style="font-size: 15px">*tmp; //pointer used to display list</span></span></p><p><span style="color: Black"><span style="font-size: 15px">char answer;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">head = new NodeType; //create the first node & make</span></span></p><p><span style="color: Black"><span style="font-size: 15px">current = head; //head and current point to it</span></span></p><p><span style="color: Black"><span style="font-size: 15px">(*current).next = NULL;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">clrscr();</span></span></p><p><span style="color: Black"><span style="font-size: 15px">do //populate the list</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px">cout << "Enter an integer ";</span></span></p><p><span style="color: Black"><span style="font-size: 15px">cin >> (*current).number;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">cout << "add another node? ";</span></span></p><p><span style="color: Black"><span style="font-size: 15px">cin >> answer;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">if(answer == 'Y' || answer == 'y')</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px">(*current).next = new NodeType; //create new node</span></span></p><p><span style="color: Black"><span style="font-size: 15px">current = (*current).next;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">(*current).next = NULL; //make last node the tail</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}while(answer == 'Y' || answer == 'y');</span></span></p><p><span style="color: Black"><span style="font-size: 15px">tmp = head;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">while (tmp != NULL) //display the list</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px">cout << (*tmp).number << " ";</span></span></p><p><span style="color: Black"><span style="font-size: 15px">tmp = (*tmp).next;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px">return 0;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p></p><p></p><p></p><p><span style="color: Blue"><span style="font-size: 18px">stacks</span></span></p><p></p><p><span style="color: Black"><span style="font-size: 15px"># include <iostream.h></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">const int MAX_STACK_SIZE = 5;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">class Stack</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> public:</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Stack(); // default constructor</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> ~Stack(); // destructor</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> bool isEmpty();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> bool isFull();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Type top();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> void push(Type n);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> void pop();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> int size();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> private:</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> struct Node</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Type data;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Node* next;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Node* currPtr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> int sizeOf; // number of items</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">Stack:Stack() // constructor</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> sizeOf = 0;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">Stack::~Stack() // destructor</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> while ( !( isEmpty() ) )</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> pop();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">bool Stack::isEmpty() </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return ( sizeOf == 0 );</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">bool Stack::isFull() </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return ( sizeOf >= MAX_STACK_SIZE );</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">Stack::top()</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> assert ( !isEmpty() );</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return (*currPtr).data;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">int Stack::size()</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return sizeOf;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">void Stack:<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick out tongue :p" loading="lazy" data-shortname=":p" />ush( Type n ) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> assert ( !isFull() );</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Node* newItem = new Node;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> (*newItem).data = n;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> (*newItem).next = currPtr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> currPtr = newItem;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> sizeOf++;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">void Stack:<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick out tongue :p" loading="lazy" data-shortname=":p" />op()</span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> assert ( !isEmpty() );</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Node* temp = currPtr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> currPtr = (*temp).next;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> delete temp;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> sizeOf--;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">void display ( Stack& s ) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Stack temp;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> while( (!s.isEmpty() ) )</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << s.top() <<‘,’ ;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> temp.push( s.pop() );</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> s.pop();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> </span></span></p><p><span style="color: Black"><span style="font-size: 15px"> while( (!temp.isEmpty() ) )</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> s.push( temp.pop() );</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> temp.pop();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">void main() </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Stack myIntStack;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> int num = 1;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"> while( !(myStack.isFull() ) )</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << “Pushing “ << num << <<myIntStack.push(num);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> num++;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> display(myIntStack);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << endl;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">while( !(myIntStack.isEmpty() ) )</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << “Popping “ << myIntStack.top();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> myIntStack.pop();</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << “ : ” ;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> display(myIntStack);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << endl;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p></p><p></p><p><span style="color: Blue"><span style="font-size: 18px">Queues</span></span></p><p></p><p><span style="color: Black"><span style="font-size: 15px">class Queue </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px">private:</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> struct NameRec </span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> char name[MAXCHARS];</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> NameRec *nextaddr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> };</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> NameRec *queue_in;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> NameRec *queue out;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">public:</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Queue(void);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> void enqueue(char *);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> char *dequeue(void);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> int isEmpty(void);</span></span></p><p><span style="color: Black"><span style="font-size: 15px">};</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">Queue::Queue(void) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> queue_in = NULL;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> queue_out = NULL;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">void Queue::enqueue(char *newname) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> NameRec *new_addr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> new_addr = new(NameRec);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> if (new_addr==NULL) {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << “No more memory” << endl;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> else {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> strcpy(new_addr->name, newname);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> new_addr->nextaddr = NULL;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> if (queue_in!=NULL)</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> queue_in->nextaddr = new_addr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> if (queue_out==NULL)</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> queue_in = new_addr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">char *Queue::dequeue(void) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> NameRec *temp_addr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> char name[MAXCHARS];</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> strcpy(name, queue_out->name);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> temp_addr = queue_out->nextaddr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> delete(queue_out);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> queue_out = temp_addr;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return name;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">int Queue::isEmpty(void) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> if (queue_out ==NULL) </span></span></p><p><span style="color: Black"><span style="font-size: 15px">return true;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> else </span></span></p><p><span style="color: Black"><span style="font-size: 15px">return false;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p><span style="color: Black"><span style="font-size: 15px">int main() </span></span></p><p><span style="color: Black"><span style="font-size: 15px">{</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> char Newname[MAXCHARS];</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> Queue namequeue;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cin.getline(newname,MAXCHARS);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> namequeue.enqueue(newname);</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> ….</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> while (!namequeue.isEmpty()) </span></span></p><p><span style="color: Black"><span style="font-size: 15px"> {</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> strcpy(newname, namequeue.dequeue());</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> cout << newname << endl;</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> }</span></span></p><p><span style="color: Black"><span style="font-size: 15px"> return 0;</span></span></p><p><span style="color: Black"><span style="font-size: 15px">}</span></span></p><p><span style="color: Black"><span style="font-size: 15px"></span></span></p><p></p><p>language-C++</p></blockquote><p></p>
[QUOTE="san**, post: 14610419, member: 392854"] [COLOR="Blue"][SIZE="5"]Defining singly linked list[/SIZE][/COLOR] [COLOR="Black"][SIZE="4"] #include <iostream.h> #include <conio.h> struct NodeType { int number; NodeType *next; }; int main() { NodeType *head, //pointer to point to the first node *current, //pointer to keep track of pos in list *tmp; //pointer used to display list char answer; head = new NodeType; //create the first node & make current = head; //head and current point to it (*current).next = NULL; clrscr(); do //populate the list { cout << "Enter an integer "; cin >> (*current).number; cout << "add another node? "; cin >> answer; if(answer == 'Y' || answer == 'y') { (*current).next = new NodeType; //create new node current = (*current).next; (*current).next = NULL; //make last node the tail } }while(answer == 'Y' || answer == 'y'); tmp = head; while (tmp != NULL) //display the list { cout << (*tmp).number << " "; tmp = (*tmp).next; } return 0; }[/SIZE][/COLOR] [COLOR="Blue"][SIZE="5"]stacks[/SIZE][/COLOR] [COLOR="Black"][SIZE="4"]# include <iostream.h> const int MAX_STACK_SIZE = 5; class Stack { public: Stack(); // default constructor ~Stack(); // destructor bool isEmpty(); bool isFull(); Type top(); void push(Type n); void pop(); int size(); private: struct Node { Type data; Node* next; } Node* currPtr; int sizeOf; // number of items } Stack:Stack() // constructor { sizeOf = 0; } Stack::~Stack() // destructor { while ( !( isEmpty() ) ) { pop(); } } bool Stack::isEmpty() { return ( sizeOf == 0 ); } bool Stack::isFull() { return ( sizeOf >= MAX_STACK_SIZE ); } Stack::top() { assert ( !isEmpty() ); return (*currPtr).data; } int Stack::size() { return sizeOf; } void Stack::push( Type n ) { assert ( !isFull() ); Node* newItem = new Node; (*newItem).data = n; (*newItem).next = currPtr; currPtr = newItem; sizeOf++; } void Stack::pop() { assert ( !isEmpty() ); Node* temp = currPtr; currPtr = (*temp).next; delete temp; sizeOf--; } void display ( Stack& s ) { Stack temp; while( (!s.isEmpty() ) ) { cout << s.top() <<‘,’ ; temp.push( s.pop() ); s.pop(); } while( (!temp.isEmpty() ) ) { s.push( temp.pop() ); temp.pop(); } } void main() { Stack myIntStack; int num = 1; while( !(myStack.isFull() ) ) { cout << “Pushing “ << num << <<myIntStack.push(num); num++; display(myIntStack); cout << endl; } while( !(myIntStack.isEmpty() ) ) { cout << “Popping “ << myIntStack.top(); myIntStack.pop(); cout << “ : ” ; display(myIntStack); cout << endl; } } [/SIZE][/COLOR] [COLOR="Blue"][SIZE="5"]Queues[/SIZE][/COLOR] [COLOR="Black"][SIZE="4"]class Queue { private: struct NameRec { char name[MAXCHARS]; NameRec *nextaddr; }; NameRec *queue_in; NameRec *queue out; public: Queue(void); void enqueue(char *); char *dequeue(void); int isEmpty(void); }; Queue::Queue(void) { queue_in = NULL; queue_out = NULL; } void Queue::enqueue(char *newname) { NameRec *new_addr; new_addr = new(NameRec); if (new_addr==NULL) { cout << “No more memory” << endl; else { strcpy(new_addr->name, newname); new_addr->nextaddr = NULL; if (queue_in!=NULL) queue_in->nextaddr = new_addr; if (queue_out==NULL) queue_in = new_addr; } return; } char *Queue::dequeue(void) { NameRec *temp_addr; char name[MAXCHARS]; strcpy(name, queue_out->name); temp_addr = queue_out->nextaddr; delete(queue_out); queue_out = temp_addr; return name; } int Queue::isEmpty(void) { if (queue_out ==NULL) return true; else return false; } int main() { char Newname[MAXCHARS]; Queue namequeue; cin.getline(newname,MAXCHARS); namequeue.enqueue(newname); …. while (!namequeue.isEmpty()) { strcpy(newname, namequeue.dequeue()); cout << newname << endl; } return 0; } [/SIZE][/COLOR] language-C++ [/QUOTE]
Insert quotes…
Verification
Hata thunen beduwama keeyada? (60 bedeema thuna)
Post reply
Top
Bottom