1.介绍链栈
所谓链栈,就是用链表存储结构实现的栈。采用链栈,可以不事先估计栈的最大容量,只要婚恋交友app源码有足够的空间,链栈就不会溢出,在使用完后,应与链表一样,给予相应的内存释放。
2.代码实现
(1)定义链栈
typedef struct node
{
int data;
struct node * next;
}Node;
(2)初始化
Node * InitStack()
{
Node * Head = (Node *)malloc(sizeof(Node));
Head->data = 0;
Head->next = NULL;
return Head;
}
(3)进栈
int Push(Node * top, int x)
{
Node * temp;
temp = (Node *)malloc(sizeof(Node));
if (temp == NULL)return(false);
temp->data = x;
temp->next = top->next;
top->next = temp;
return(true);
}
![在这里插入图片描述](img-blog.csdnimg.cn/20200130171… =900x)
(4)出栈
int Pop(Node * top, int *x)
{
Node * temp;
temp = top->next;
if (temp == NULL)return(false);
top->next = temp->next;
*x = temp->data;
free(temp);
return(true);
}
1.介绍队列
1.队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 2.队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。 3.与线性表一样,队列也有两种存储方式,即顺序表示和链式表示,今天这篇是链式表示法。
2.图示
用链表表示队列叫做链队列。
3.定义链队列
typedef struct Node
{
int data;
struct Node * next;
}Node;
typedef struct
{
Node * front;
Node * rear;
}LinkQueue;
4.初始化链队列
int InitQueue(LinkQueue * Q)
{
Q->front = (Node *)malloc(sizeof(Node));
if (Q->front != NULL)
{
Q->rear = Q->front;
Q->front->next = NULL;
return(true);
}
else
{
return(false);
}
}
5.入队
int EnterQueue(LinkQueue * Q, int x)
{
Node * NewNode;
NewNode = (Node *)malloc(sizeof(Node));
if (NewNode != NULL)
{
NewNode->data = x;
NewNode->next = NULL;
Q->rear->next = NewNode;
Q->rear = NewNode;
return(true);
}
else
{
return(false);
}
}
6.出队
int DeleteQueue(LinkQueue * Q, int * x)
{
Node * p; //用来存储要出的数据
if (Q->front == Q->rear)return(false);
p = Q->front->next;
Q->front->next = p->next;
if (Q->rear == p)
{
Q->rear = Q->front;
}
*x = p->data;
free(p);
return(true);
}
以上,就是婚恋交友app源码开发会用到的数据结构介绍。
声明:本文由云豹科技转发自花狗Fdog博客,如有侵权请联系作者删除