十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
num本来就是数组名,对应一个地址,怎么会用符号呢?
10多年的鸡泽网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整鸡泽建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“鸡泽网站设计”,“鸡泽网站推广”以来,每个客户项目都认真落实执行。
改为scanf("%s", p1 - num);我个人感觉可以有空格吧,毕竟编译的时候空格是要被过滤的。
赋值主要还是给成员赋值,还有就是加个节点要把某地址赋值给上一个地址的下一个节点
#includestdio.h
#include stdlib.h
typedef struct queue{
int *base;
int front,rear;
}squeue;
void initqueue(squeue Q) //这里使用引用 里面的Q是形参 与外面的Q没什么关系
{
Q.base = (int *)malloc(20*sizeof(int)) ;
Q.rear = Q.front =0;
}
int main(int argc, char *argv[])
{
squeue Q;
initqueue(Q);
Q.base[Q.rear] = 4;
printf("%d\n",Q.rear);
printf("%d\n",Q.base[Q.rear]);
system("PAUSE");
return 0;
}
pq-rear-next
=
pnew这个代码从队列的尾部增加新节点,
然后pq-rear
=
pnew更新队列尾部指针。队列的数据结构形式就是由一个头front指针,一个尾rear指针来表征,items的设计是用空间换时间,涉及队列大小的操作会非常方便。
队列的特征是先进先出,你给出的链式实现,其实就跟一个链表一样,链表的添加删除如果能理解了,队列只是链表的元素增加/删除
按先进先出特点的一种实现。
但对于队列来说,实现方式不是重点,先进先出的性质才是重点,这在实际应用中很多,比如排队叫号。
void InitQueue(LiQueue *q)
{q=(LiQueue *)malloc(sizeof(LiQueue));
q-front=q-rear-NULL;} //初始化
int QueueEmpty(LiQueue *q)
{if(q-rear==NULL)
return 1;
else
return 0;} //判空
void enQueue( LiQueue *q,ElemType e)
{QNode *s;
s=(QNode *)malloc(sizeof(QNode));
s-data=e;
s-next=NULL;
if(q-rear==NULL)
q-front=q-rear=s;
else
{q-rear-next=s;
q-rear=s;
}} //入队
int deQueue( LiQueue *q,ElemType e)
{QNode *t;
if(q-rear==NULL)
return 0;
t=q-front;
if(q-front==q-rear)
q-front=q-rear=NULL;
else
q-front=q-front-next;
e=t-data;
free(t);
return 1;} //出队
int deQueue( LiQueue *q,ElemType e)
{QNode *t;
if(q-rear==NULL)
return 0;
t=q-front;
if(q-front==q-rear)
q-front=q-rear=NULL;
else
q-front=q-front-next;
e=t-data;break;
free(t);
return 1;} //取队头
输出队列所有数就是出队