Stack Implementation in swift


public struct Stack{
 private var array:[T]
 public var maxSize:Int?

 public init(){
    array = []
 }


//MARK: isEmpty
 public var isEmpty:Bool{
 return array.count == 0
 }

//MARK: count
 public var count:Int{
 return array.count
 }
 //MARK: PUSH
 public mutating func push(element:T){
 if (maxSize != nil){
 if array.count >= maxSize{
 print("OverFlow")
 }
 }
 array.append(element)
 }
 //MARK: POP
 public mutating func pop()->T?{
 if isEmpty{
 return nil
 }
 return array.removeLast()
 }

//MARK: get Peek element
 public func peek()->T?{
 return array.last
 }
}

//use this stack
var myStack = Stack()
myStack.push(10)
myStack.pop()
Advertisements

Queue implementation in swift


public struct Queue<T>{

    private var array:[T]

    public init(){

        array = []

    }

    //MARK: isEmpty

    public var isEmpty:Bool{

        return array.count == 0

    }

    //MARK: count

    public var count:Int{

        return array.count

    }

    //MARK: enqueue

    public mutating func enqueue(element:T){

        array.append(element)

    }

    //MARK: dequeue

    public mutating func dequeue()->T?{

        if isEmpty{

            return nil

        }

        return array.removeFirst()

    }

    //MARK: get Peek element

    public func peek()->T?{

        return array.last

    }

}

// this queue

var myQueue = Queue<Int>()

myQueue.enqueue(10)

myQueue.dequeue()