关于c语言的链式存储的文献 谁有 给我点
发布网友
发布时间:2022-05-05 03:43
我来回答
共1个回答
热心网友
时间:2022-06-29 01:16
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
typedef struct Node
{
int data;
struct Node * pNext;
}NODE, *PNODE;
typedef struct Squeue
{
PNODE front;
PNODE rear;
}SQUEUE,*PSQUEUE;
void init_sq(PSQUEUE sq);
void en_sq(PSQUEUE sq, int val);
void show_sq(PSQUEUE sq);
void delete_sq(PSQUEUE sq);
void main()
{
SQUEUE sq ;
int val;
init_sq(&sq);
en_sq(&sq,1);
en_sq(&sq,2);
en_sq(&sq,3);
en_sq(&sq,4);
en_sq(&sq,5);
show_sq(&sq);
delete_sq(&sq);
show_sq(&sq);
}
void init_sq( PSQUEUE sq )
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if(NULL == pNew)
{
printf("内存分配失败\n");
exit(-1);
}
pNew ->pNext = NULL;
sq->front = pNew;
sq->rear = pNew;
}
void en_sq(PSQUEUE sq,int val)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if(NULL == pNew)
{
printf("内存分配失败\n");
exit(-1);
}
pNew->data = val;
sq->rear->pNext = pNew;
sq->rear = pNew;
pNew->pNext = NULL;
}
void show_sq(PSQUEUE sq)
{
PNODE p = sq->front->pNext;
while(p != NULL)
{
printf("%3d",p->data);
p = p->pNext;
}
printf("\n");
}
void delete_sq(PSQUEUE sq, int * val)
{
PNODE p = sq->front;
if(sq->front == sq->rear)
printf("队列为空\n");
else
{
sq->front = p->pNext;
*val = p->data;
free(p);
}
}
你先看看,那地方不清楚,请提问。
追问我要中文呀⋯⋯数据结构分析 心得之类的
追答哦,那估计不太好找吧,所谓心得是自己的学习体会,别人的心得对你只能是参考。学习数据结构关键是多编程实现算法,写多了自然就有了心得。学习的过程就是将书本上或别人的思想转化为自己思想认知的过程。学习数据结构建议你多写程序,因为该课程是练基本功和提升内涵的基础课程,欢迎交流。