数据结构之栈与队列
发布日期:2021-05-07 15:59:02 浏览次数:21 分类:技术文章

本文共 1162 字,大约阅读时间需要 3 分钟。

//顺序栈存储结构#define Stack_Size 50typedef struct{	type elem[Stack_Size];	int top;//栈顶元素的下标 }Stack; //顺序栈初始化void InitStack(Stack *S){	S->top=-1;} //顺序进栈int Push(Stack *S,Type x){	//判满 	if(S->top==Stack_Size-1) return(FLASE);	S->tp++;	S->elem[S->top]=x;	return (TRUE);} //顺序栈出栈int pop(Stack *S,Type *x){	//栈顶元素弹出, x带出	//判空 	if(S->top==-1) return(FLASE);	*x=S->elem[S->top];	S->top--;	return (TURE); }//链栈存储结构typedef struct node{	Type data;	struct node *next;}Node,*List; //链栈进栈 void InitList(List L){	top=L;	top->next==NULL;}int push(List *L,Type x){	//申请新的空间	List *t;	t=(List *)malloc(sizeof(Node));	if(t==NULL)return(FLASE);//申请空间失败	t->data=x;	t->next=top->next;	top->next=t;	return(TURE); }//链栈出栈 int pop(List L,Type *x){	List t;	t=top->next;	//判空 	if(t==NULL)return(FLASE);	 top->next=t;//要删除的点 	 *x=t->data;//指针x带出	 free(t);//释放指针	 return (TRUE); }/*算法3.17 链队列插入算法将数据元素X插入到队列中Q */int EnterQueue(LinkQueue *Q,QueueElementType x){	LinkQueueNode * NewNode;	NewNode=(LinkQueueNode *)malloc(sizeof(LinkQueueNode));	if(NewNode!=NULL){		NewNode->data=x;		NewNode->next=NULL;		Q->rear->next=NewNode;//原尾指针 		Q->rear=NewNode;//修改尾指针 		return (TRUE);	}	else return(FALSE);}

 

上一篇:数据结构之数组与广义表
下一篇:数据结构基本之线性表

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月06日 11时29分27秒