Note
Please create an issue if you find any errors in the programs.
| Program | Code | Psudocode |
|---|---|---|
| Linear Search | Link | TBD |
| Binary Search | Link | TBD |
| Bubble Sort | Link | TBD |
| Repeated Element | Link | TBD |
| Second Largest | Link | TBD |
| Selection Sort | Link | TBD |
| Insertion Sort | Link | TBD |
| Polynomial Addition | Link | TBD |
| Stack | Link | TBD |
| Queue | Link | TBD |
| Triplet Representation | Link | TBD |
| Sparse Matrix Addition | Link | TBD |
| Circular queue | Link | TBD |
| Priority queue | Link | TBD |
| Double ended queue | Link | TBD |
| Infix to postfix | Link | TBD |
| Postfix evaluation | Link | TBD |
| Linked list | Link | Link |
| Queue using linked list | Link | Link |
| Stack using linked list | Link | Link |
| Circular linked list | Link | TBD |
| Doubly linked list | TBD | TBD |
Warning
These are not the exact psudocodes used in the programs. These are just for reference.
PROGRAM LINEARSEARCH
PROCEDURE MAIN
INPUT size
INPUT array of size
INPUT key
SET index = -1
FOR i = 0 TO size
IF array[i] = key
SET index = i
BREAK
END IF
END FOR
IF index = -1
PRINT "KEY NOT FOUND"
ELSE
PRINT "KEY FOUND AT INDEX ", index
END IF
END PROCEDURE
END PROGRAM
PROGRAM BINARYSEARCH
PROCEDURE MAIN
INPUT size
INPUT array of size
INPUT key
SET index = -1
SET low = 0
SET high = size - 1
WHILE low <= high
SET mid = (low + high) / 2
IF array[mid] = key
SET index = mid
BREAK
ELSE IF array[mid] < key
SET low = mid + 1
ELSE
SET high = mid - 1
END IF
END WHILE
IF index = -1
PRINT "KEY NOT FOUND"
ELSE
PRINT "KEY FOUND AT INDEX ", index
END IF
END PROCEDURE
END PROGRAM
PROGRAM LINKEDLIST
PROCEDURE ADDFRONT ACCEPTING HEAD
CREATE NEWNODE
INPUT NEWNODE->DATA
SET NEWNODE->NEXT = HEAD
SET HEAD = NEWNODE
RETURN HEAD
END PROCEDURE
PROCEDURE ADDREAR ACCEPTING HEAD
CREATE NEWNODE
INPUT NEWNODE->DATA
SET NEWNODE->NEXT = NULL
IF HEAD = NULL
SET HEAD = NEWNODE
ELSE
SET CURRENT = HEAD
WHILE CURRENT->NEXT != NULL
SET CURRENT = CURRENT->NEXT
END WHILE
SET CURRENT->NEXT = NEWNODE
END IF
RETURN HEAD
END PROCEDURE
PROCEDURE DELETEFRONT ACCEPTING HEAD
IF HEAD = NULL
PRINT "LIST IS EMPTY"
ELSE
SET TEMP = HEAD
SET HEAD = HEAD->NEXT
FREE TEMP
END IF
RETURN HEAD
END PROCEDURE
PROCEDURE DELETEREAR ACCEPTING HEAD
IF HEAD = NULL
PRINT "LIST IS EMPTY"
ELSE
SET CURRENT = HEAD
IF CURRENT->NEXT = NULL
SET HEAD = NULL
FREE CURRENT
ELSE
WHILE CURRENT->NEXT != NULL
IF CURRENT->NEXT->NEXT = NULL
SET TEMP = CURRENT->NEXT
SET CURRENT->NEXT = NULL
FREE TEMP
ELSE
SET CURRENT = CURRENT->NEXT
END IF
END WHILE
END IF
END IF
RETURN HEAD
END PROCEDURE
PROCEDURE DISPLAY ACCEPTING HEAD
IF HEAD = NULL
PRINT "LIST IS EMPTY"
ELSE
SET CURRENT = HEAD
WHILE CURRENT != NULL
PRINT CURRENT->DATA
SET CURRENT = CURRENT->NEXT
END WHILE
END IF
END PROCEDURE
END PROGRAM
PROGRAM QUEUEUSINGLINKEDLIST
PROCEDURE ENQUEUE ACCEPTING HEAD
CREATE NEWNODE
INPUT NEWNODE->DATA
SET NEWNODE->NEXT = NULL
IF HEAD = NULL
SET HEAD = NEWNODE
ELSE
SET CURRENT = HEAD
WHILE CURRENT->NEXT != NULL
SET CURRENT = CURRENT->NEXT
END WHILE
SET CURRENT->NEXT = NEWNODE
END IF
RETURN HEAD
END PROCEDURE
PROCEDURE DEQUEUE ACCEPTING HEAD
IF HEAD = NULL
PRINT "QUEUE IS EMPTY"
ELSE
SET TEMP = HEAD
SET HEAD = HEAD->NEXT
FREE TEMP
END IF
RETURN HEAD
END PROCEDURE
PROCEDURE DISPLAY ACCEPTING HEAD
IF HEAD = NULL
PRINT "QUEUE IS EMPTY"
ELSE
SET CURRENT = HEAD
WHILE CURRENT != NULL
PRINT CURRENT->DATA
SET CURRENT = CURRENT->NEXT
END WHILE
END IF
END PROCEDURE
END PROGRAM
PROGRAM STACKUSINGLINKEDLIST
PROCEDURE PUSH ACCEPTING HEAD
CREATE NEWNODE
INPUT NEWNODE->DATA
SET NEWNODE->NEXT = HEAD
SET HEAD = NEWNODE
RETURN HEAD
END PROCEDURE
PROCEDURE POP ACCEPTING HEAD
IF HEAD = NULL
PRINT "STACK IS EMPTY"
ELSE
SET TEMP = HEAD
SET HEAD = HEAD->NEXT
FREE TEMP
END IF
RETURN HEAD
END PROCEDURE
PROCEDURE DISPLAY ACCEPTING HEAD
IF HEAD = NULL
PRINT "STACK IS EMPTY"
ELSE
SET CURRENT = HEAD
WHILE CURRENT != NULL
PRINT CURRENT->DATA
SET CURRENT = CURRENT->NEXT
END WHILE
END IF
END PROCEDURE
END PROGRAM