C\# 데이터 구조 - 대기 열

대기 열 은 특수 선형 데이터 구조 이자 일종 의
연산 이 제 한 된 선형 표 는 창고 와 정반 대의 연산 규칙 이다
먼저 들 어가, 먼저.요소 삽입
입대
대열 의 끝;요소 삭제
팀 을 나가다
팀 의 우두머리.
순서 표 대기 열
class SqQueueClass
    {
        const int Maxsize = 10;
        public string[] data;
        //     
        public int front, rear;
        public SqQueueClass()
        {
            data = new string[Maxsize];
            //     
            front = -1;
            rear = -1;
        }
        //     
        #region         
        public bool QueueEmpty()
        {
            return front == rear;
        }
        #endregion
        #region   
        public bool enQueue(string value)
        {
            //  
            if (rear==Maxsize-1)
            {
                return false;
            }
            rear++;
            data[rear] = value;
            return true;
        }
        #endregion
        #region   
        public bool deQueue(ref string value)
        {
            //  
            if (front==rear)
            {
                return false;
            }
            front++;
            value = data[front];
            return true;
        }
        #endregion
    }

순환 대기 열
class SqQueueClass
    {
        const int Maxsize = 10;
        public string[] data;
        //     
        public int front, rear;
        public SqQueueClass()
        {
            data = new string[Maxsize];
            //    
            front = 0;
            rear = 0;
        }
        //    
        #region         
        public bool QueueEmpty()
        {
            return front == rear;
        }
        #endregion
        #region   
        public bool enQueue(string value)
        {
            //  
            if ((rear+1)%Maxsize==front)
            {
                return false;
            }
            rear = (rear + 1) % Maxsize;
            data[rear] = value;
            return true;
        }
        #endregion
        #region   
        public bool deQueue(ref string value)
        {
            if (front==rear)
            {
                return false;
            }
            front = (front + 1) % Maxsize;
            value = data[front];
            return true;
        }
        #endregion
    }

링크 대기 열
/// 
    ///       
    /// 
    class LinkData
    {
        public string data;
        public LinkData next;
    }
    /// 
    ///       
    /// 
    class LinkQueue
    {
        public LinkData front;
        public LinkData rear;

    }
    /// 
    ///     
    /// 
    class LinkQueueClass
    {
        LinkQueue queues = new LinkQueue();
        public LinkQueueClass()
        {
            //   
            queues.front = null;
            queues.rear = null;
        }
        #region         
        public bool QueueEmpty()
        {
            return queues.front == queues.rear;
        }
        #endregion
        #region   
        public void enQueue(string value)
        {
            LinkData datas = new LinkData();
            datas.data = value;
            datas.next = null;
            //  
            if (queues.rear==null)
            {
                queues.front = datas;
                queues.rear = datas;
            }
            else
            {
                queues.rear.next = datas;
                queues.rear = datas;
            }
        }
        #endregion
        #region   
        public bool deQueue(ref string value)
        {
            LinkData datas;
            //  
            if (queues.rear==null)
            {
                return false;
            }
            datas = queues.front;
            if (queues.front==queues.rear)
            {
                //       
                queues.front = null;
                queues.rear = null;
            }
            else
            {
                queues.front = queues.front.next;
            }
            value = datas.data;
            //    
            datas = null;
            return true;
        }
        #endregion
    }

좋은 웹페이지 즐겨찾기