#include<string.h>
#include<conio.h>
#include
"malloc.h"//添加这个,因为要用到malloc函数
typedef
struct
Lnode
{
int
cttr
struct
Lnode
*next
}Lnode
typedef
struct
Lqueue
{
struct
Lnode
*front
struct
Lnode
*rear
}Lqueue,*LinkedQ
LinkedQ
init()
{
LinkedQ
Q=(LinkedQ)malloc(sizeof(Lqueue))
struct
Lnode
*head=(Lnode*)malloc(sizeof(Lnode))
head->next=NULL
Q->front=head
Q->侍散磨rear=head
return
Q
}
int
empty(LinkedQ
Q)
{
if(Q->front==Q->rear)
{
return
1
}
else
{
return
0
}
}
void
push(LinkedQ
Q,int
ttr)
{
Lnode
*node
node=(Lnode*)malloc(sizeof(Lnode))
if(node==NULL)
{
printf("error!\n")
}
else
{
node->cttr=ttr
node->next=NULL
Q->rear->next=node
Q->rear=node
}
}
void
pop(LinkedQ
Q)
{
Lnode
*node
if(Q->front==Q->rear)
{
printf("error!\n")
}
else
{
node=Q->front->next
Q->front->next=node->next
if(node==Q->rear)
{
Q->rear=Q->front
}
free(node)
}
}
void
Qprint(LinkedQ
Q)
{
Lnode
*node=Q->front->next//-------------这里改过了
printf("data:
")
while(node!=NULL)
{
printf("掘衫%d
"老斗,node->cttr)
node=node->next
}
}
void
main()
{
LinkedQ
Q
int
ic//去掉没用的ia
scanf("%d",&ic)
while(ic!=0)
{
if(ic==-1)
Q=init()
else
if(ic%2==0)
{
push(Q,ic)
Qprint(Q)
}
else
if(ic%2!=0)
{
pop(Q)
Qprint(Q)
}
scanf("%d",&ic)
}
}
如上面是一个队列的问题,这是一个具体应用。
c语言可以用在很多方面,总的来时就是编写代码,写软件!
#include<stdio.h>//链接标准头文件#define N 10 //定义常量N并赋值为10
void main() //主函数入口
{ //表示主函数开始
int i,j//定义整形变量i和j
int grade[N],temp//定义N维(N=宏乎锋蔽晌10,也就是十维啦^^)整形数组和整形变量temp
printf("输入10个数\n")//在屏幕上显式“输入10个数”并且换行
for(i=0i<Ni++) //开始for循环,从i=0,每次加1,直到i=9,共需循环10次
{ //循环体开始
scanf("%d",&grade[i])//依次获取用户输入的整数值并存入数组grade中
} //循环结束
for(i=0i<Ni++) //开始外层for循环,从i=0,每次加1,直到i=9
{ //外层循环体开始
for(j=0j<N-1-ij++) //开始外层for循环,从j=0,每次加1直到i等于外层循环的N-j-1
{ //内层循环体开始
if(grade[j]>grade[j+1]) //条件判断
{ //如果整形数组前面的数比其后的大,执行以下语句
temp=grade[j+1]//将比较小的数赋值给temp
grade[j+1]=grade[j]//将比较大的数赋值给数组中后面的变量
grade[j]=temp//将比较小的数赋值给数组中前面的变量
} //从此便完顷顷成大小变量的交换,使得小值往前放
} //结束内层循环
} //结外内层循环,完成排序
printf("最后排序为:\n")//在屏幕显式“最后排序为:”并换行
for(i=0i<Ni++) //同开始的for循环类似
{ //开始循环输出
printf("%d",grade[i])//只是这里要逐个输出数组中的十个数值
} //结束循环输出
printf("最小值为%d\n",&grade[0])
printf("最大值为%d\n",&grade[9])
printf("\n")//输出换行到屏幕,看不到什么效果,可删掉
} //结束main()函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)