码迷,mamicode.com
首页 > 其他好文 > 详细

考研数据结构-栈和队列

时间:2019-07-13 12:08:21      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:head   数据结构   nbsp   node   ack   ali   color   null   ext   

栈是一种只能在一端进行插入或删除操作的线性表。

线性表:栈的逻辑结构属于线性表,只不过在操作上加了一些约束。

一端:可以插入或者删除元素的一端叫栈顶,另一端叫栈底。

顺序栈

 

1 int stack[maxSize];
2 int top = -1;
3 
4 //元素入栈
5 stack[++top] = x;
6 
7 //元素出栈
8 x = stack[top--]; 

 

链栈

 1 LNode *head = (LNode*)malloc(sizeof(LNode));
 2 head→next = NULL;
 3 LNode *top = NULL;
 4 
 5 //元素入栈
 6 top = (LNode*)malloc(sizeof(LNode));
 7 top→next = NULL:
 8 top→data = A;
 9 top→next = head→next;
10 head→next = top;
11 
12 //元素出栈
13 x = top→data;
14 head→next = top→next;
15 free(top);
16 top = head→next;
17 
18 /*head→next == NULL为真,则栈空;
19 只要有足够的内存,栈就不会满*/

队列

队列是一种插入元素只能在一端能进,删除元素只能在另一端进行的线性表。

线性表:队列的逻辑结构属于线性表,只不过在操作上加了一些约束。

一端:可以插入元素的一端叫队尾(rear)。

另一端:可以删除元素的一端叫对头(front)。

顺序队

1 int queue[maxSixe];
2 int front = 0,rear = 0;
3 
4 //元素进队
5 
6 queue[++rear] = x;
7 
8 //元素出队
9 x = queue[++front]

循环队列

 1 //入队
 2 rear = (rear+1)%maxSize;
 3 queue[rear]=x;
 4 
 5 //出队
 6 front = (front+1)%maxSize;
 7 x = queue[front];
 8 
 9 //front == rear 队空
10 
11 //front == (rear+1)%maxSize为真。

链队

1 typedef struct{
2 LNode *front;
3 LNode *rear;
4 }queue;

 

考研数据结构-栈和队列

标签:head   数据结构   nbsp   node   ack   ali   color   null   ext   

原文地址:https://www.cnblogs.com/SanChauncy/p/11180021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!