大佬们 帮忙看看栈和队列的类型定义问题
我栈类型定义是
typedef struct stacknote
{
char data;
struct stacknote *next;
}stacknote,*Linkstackptr;
typedef struct node
{
int count;
Linkstackptr top;
}Linkstack;
在置空栈函数中的动态分配内存格式
void Initstack(Linkstack* s)
{
s = (Linkstack*)malloc(sizeof(Linkstack));
if (*s == NULL)
{
return;
}
else
{
s->top = NULL;
}
}
这是队列的类型定义和动态分配内存格式
typedef struct queuenote
{
int data;
struct queuenote *next;
}queuenote,*Linkqueueptr;
typedef struct
{
Linkqueueptr front,rear;
}Linkqueue;
置空
int Initqueue(Linkqueue *p)
{
p->front=p->rear=(Linkqueueptr)malloc(sizeof(queuenote));
if(!p->front)
{
return 0;
}
p->front->next=p->rear->next=NULL;
return 1;
}
为什么这两个不一样 我在适应了栈的格式后,把他套在队列上 结果不对这是为什么求大佬解析一下。
最后还有一个小问题
void print(Linkqueue q)
{
while(q.front!=q.rear)
{
q.front=q.front->next; //注意front指向头结点非第一个结点 故先指向下一个
printf("%d\n",q.front->data);
}
}在打印队列的时候为啥是q.front而不是q->front
这两个有啥差别
typedef struct stacknote
{
char data;
struct stacknote *next;
}stacknote,*Linkstackptr;
typedef struct node
{
int count;
Linkstackptr top;
}Linkstack;
在置空栈函数中的动态分配内存格式
void Initstack(Linkstack* s)
{
s = (Linkstack*)malloc(sizeof(Linkstack));
if (*s == NULL)
{
return;
}
else
{
s->top = NULL;
}
}
这是队列的类型定义和动态分配内存格式
typedef struct queuenote
{
int data;
struct queuenote *next;
}queuenote,*Linkqueueptr;
typedef struct
{
Linkqueueptr front,rear;
}Linkqueue;
置空
int Initqueue(Linkqueue *p)
{
p->front=p->rear=(Linkqueueptr)malloc(sizeof(queuenote));
if(!p->front)
{
return 0;
}
p->front->next=p->rear->next=NULL;
return 1;
}
为什么这两个不一样 我在适应了栈的格式后,把他套在队列上 结果不对这是为什么求大佬解析一下。
最后还有一个小问题
void print(Linkqueue q)
{
while(q.front!=q.rear)
{
q.front=q.front->next; //注意front指向头结点非第一个结点 故先指向下一个
printf("%d\n",q.front->data);
}
}在打印队列的时候为啥是q.front而不是q->front
这两个有啥差别
...全文
相关推荐
数据结构:第3章_栈和队列.ppt
理解并掌握这两种数据结构,对于编写高效和优雅的代码至关重要。通过学习栈和队列的类型定义、实现方法以及应用场景,我们可以更好地运用它们解决实际问题。
栈和队列的基本操作实现及其应用
三、栈和队列的应用栈和队列在实际问题中的应用非常广泛,例如:* 判断回文:使用栈可以判断一个字符串是否为回文。* 模拟队列的管理:使用队列可以模拟队列的管理,例如模拟银行排队系统。
第三章 栈和队列.ppt
**缓冲区管理**:在网络通信和文件读写中,队列常用于临时存储数据。**学习目标**包括理解和熟练掌握栈和队列的特性,能够根据实际问题选择合适的数据结构,以及实现栈和队列的基本操作。
第3章_栈和队列.ppt
通过学习栈和队列,我们可以更好地理解和解决实际问题,比如处理递归、优化资源分配和提高程序效率。在实际编程中,合理利用栈和队列可以大大提高代码的可读性和效率。
数据结构课件:第3章 栈和队列2队列.pptx
队列是一种特殊的线性表,它遵循先进先出(FIFO)原则,即最先插入的元素最先被删除。在第3章“栈和队列2队列”中,我们深入探讨了队列的类型定义、存储结构、运算规则以及实现方式。


