cara_celia 2018-05-27 08:20 采纳率: 0%
浏览 1022
已结题

c语言 自己写的zz代码不知道怎么连续输入链表每一个节点的数据 求大佬帮忙

#include
#include
#include
#include

//定义全局变量
int isEmpty=0;//标志,判断链表是否为空

//!!!定义单链表结构体!!!
typedef struct Node{
int NUM;//类型总数
int NAME;//各类型名称
int num; //各类型下的货物总数
struct Node*next;
}Node;

//函数声明
Node*create(Node*L);
Node*input(Node*L);
Node*output(Node*L);
Node*outnum(Node*L);
Node*outname(Node*L);
Node*current(Node*L);
void search(Node*L);
void print(Node*L);
void searchnum(Node*L);
void searchname(Node*L);
void display(Node*L);
//========新增加的函数========
Node*append(Node*L);

//主函数
void main()
{

printf("欢迎使用我的仓库管理系统!\n"); 
while(1);
{
    //主菜单开始 
    printf("==========================\n");
    printf("1.显示货物类型列表\n");
    printf("2.增加货物类型\n");
    printf("3.删除货物类型\n");
    printf("4.货物入库\n");
    printf("5.货物出库\n");
    printf("6.库存显示\n");
    printf("7.退出\n");
    printf("==========================\n");
    //主菜单结束
    printf("选择1-7:");
    scanf("%d",&x); 
    switch(x)
    {
        case 1:;break;
        case 2:append(L);break;
        case 3:;break;
        case 4:;break;
        case 5:;break;
        case 6:;break;
        case 7:;break;
        default:printf("input error!\nplaese input1-7");
    }       
}           

}

//函数
//1.创建链表节点
Node*create(Node*L)
{
Node*pTail=L;
L->next=NULL;
Node*p;
p=(Node*)malloc(sizeof(Node));
if(p==NULL)
{
printf("申请内存空间失败!\n");
}

//利用尾插建立单链表
pTail->next=p;
p->next=NULL;
pTail=p;
}
//2.增加货物类型
Node*append(Node*L)
{

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2018-05-27 08:25
    关注
     /*-----------------------------创建链表---------------------------------*/
    /*在链表的末端插入新的节点,建立链表*/
    Node *create(int n)
    {
     Node *head;//指向头结点指针
     Node *p,*pre;
     int i;
     head=(Node *)malloc(sizeof(Node));//为头节点分配内存空间
     head->next=NULL;//将头结点的指针域清空
     pre=head;//先将头结点首地址赋给中间变量pre
     for(i=1;i<=n;i++)//通过for循环不断加入新的结点
      {
       printf("input name of the %d student:",i);//打印出第几个人的名字
       p=(Node *)malloc(sizeof(Node));//为要插入的节点分配
       //内存空间p指向新插入结点的首地址
       scanf("%s",&p->name);//输入姓名
       printf("input score of the %d student:",i);
       scanf("%d",&p->score);//输入分数
       pre->next=p;//将p指向新结点插入链表也就是头结点指针域指向
       //下个结点
       //第一个结点就是p指向的,因为头结点内容为空
       pre=p;//这个起着指向下一个结点的作用
      }
     p->next=NULL;//最后将最后一个结点的指针域清空了
     return head;//返回这个链表的首地址
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 matlab解优化问题代码
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?