堆栈,队列 ,链表

1:堆栈  

     堆栈实现了一种后进先出的语义 (LIFO) 。可以使用数组或者是链表来实现它: 对于堆栈中的数据的所有操作都是在栈的顶部完成的,只可以查看栈顶部的数据,只能够向栈的顶部压入数据,也只能从栈的顶部弹出数据

  1.堆栈又名栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底; 

  2.堆栈就是一个桶,遵循先进后出的原则。

  3.实现

typedef struct MEC_STACK {
void **stack; //这个成员用于存储数据
int capacity; //这个成员用于存储数据的容量,便于初始化
int top; //这个成员用于记录栈顶指针的位置
}MEC_STACK;


    (1) 录入函数
    (2) 取出函数
    (3) 获取当前栈顶指针的函数

 

2:队列

      队列是有序集合,新添加的一端为队尾,另一端为队头,当一个元素从队尾进入队列时,一直向队首移动,直到它成为移除的元素为止。这种排序是先进先出FIFO

 

   1.数据从队列的一端进,另一端出;
   2.数据的入队和出队遵循"先进先出"的原则;
   3.实现

typedef struct MEC_STACK {	
        void **stack;                                //这个成员用于存储数据
int capacity; //这个成员用于存储数据的容量,便于初始化
int top; //这个成员用于队列首指针的位置 int rear; //这个成员用于队列尾指针的位置 }MEC_Queue;

               (1) 录入函数

               (2) 取出函数
               (3) 获取当前队首指针的函数   
               (4) 获取当前队尾指针的函数   
 

3:链表 

       链表中每一个元素都是一个对象,每个对象称为一个节点,包含有数据域key和指向下一个节点的指针next。通过各个节点之间的相互连接,最终串联成一个链表。链表分为单向链表和多向链表

双向链表typedef struct MEC_STACK {	             void **stack;                                //这个成员用于存储数据
int top; //这个成员用于记录前面节点的位置
int rear; //这个成员用于记录后面节点的位置
}MEC_Queue;

               (1) 插入函数

               (2) 删除函数
     

posted @ 2023-02-27 16:32  给香菜送点香菜  阅读(28)  评论(0)    收藏  举报