qq_28326071 2015-06-16 08:43 采纳率: 50%
浏览 2143

谁能帮我画一下这个程序的流程图 ,谢谢

#include
#include //调用stdlib.h
struct Node //定义一个自定义struct结构,名字为node。struct为关键字,结构体的意思
{ int data;
struct Node next;.//定义一个指向Node这种结构体的指针
};
struct Node *head; //头指针
struct Node * CREAT();
void search();
void insert();
void DELETE();
int j;
void main()
{
int i;
printf("\n \t 此程序仅为线性表的链式存储开发 \n");
for( ; ; )
{
printf("\n\t 请选择您要执行的操作序号!\t\n");
printf("\t\t1.建立线性表\n\t\t2.查 找\n\t\t3.插 入\n\t\t4.删 除\n\t\t5.退 出\n");
scanf("%d",&i);
switch(i)
{
case 1:CREAT();break;
case 2:search();break;
case 3:insert();break;
case 4:DELETE();break;
case 5:exit(0);
}
}
}
struct Node *CREAT(void)
{
int i,m;
head=(struct Node *)malloc(sizeof(struct Node));
//从系统分配sizeof(struct Node)大小的内存空间,然后将起始地址转换成struct Node *指针类型传送给*head
if(head==NULL) /
这个地方可有可无,因为失败的话执行不了下面的!*/
{
printf("错误!");
exit(0);
}
struct Node * s=head;
s->next=NULL;

printf("请输入您要生成节点的个数!\n");
scanf("%d",&j);
for(i=1;i<=j;i++)
{
printf("请输入第%d个元素:",i);
scanf("%d",&m);
struct Node *p=(struct Node *)malloc(sizeof(struct Node));
p->data=m;
p->next=NULL;
s->next=p;
s=p;
}
s=head;s=s->next;
printf("当前链表元素个数为%d个\n",j);
printf("输出表:");
for(i=1;i<=j;i++)
{
printf("%d\t",s->data);
s=s->next;
}

return head;
getchar();getchar();
}
void search()
{
int k,i;
printf("请输入您要搜寻元素的位置!");
scanf("%d",&k);
struct Node *p=head;
for(i=0;i p=p->next;
printf("您要搜索的值为%d",p->data);
getchar();getchar();
}
void insert()
{
int a,b,i;
printf("请输入您要插入元素的位置:");
scanf("%d",&a);
printf("请输入您要插入的元素:");
scanf("%d",&b);
struct Node *p=head;

for(i=0;i p=p->next;
struct Node *s=(struct Node *)malloc(sizeof(struct Node));
s->data=b;
s->next=p->next;
p->next=s;
p=head;p=p->next;
j=j+1;
printf("当前链表元素个数为%d个\n",j);
printf("输出表:");
for(i=1;i<=j;i++)
{
printf("%d\t",p->data);
p=p->next;
}
getchar();getchar();
}
void DELETE()
{
int a,i;
printf("请输入您要删除元素的位置:");
scanf("%d",&a);
struct Node *p=head;
struct Node *r;
for(i=1;i p=p->next;
r=p->next;
p->next=r->next;
free(r);
j=j-1;
p=head;
p=p->next;
printf("当前链表元素个数为%d个\n",j);
printf("输出表:");
for(i=1;i<=j;i++)
{
printf("%d\t",p->data);
p=p->next;
}
getchar();getchar();
}

  • 写回答

2条回答 默认 最新

  • lx624909677 2015-06-16 14:09
    关注

    直接用文字描述一下你的程序每一步做了什么,我给你画

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序