• c语言动态内存分配(上课)


    源程序:

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct node
    {
    int data;
    struct node *next; //定义一个结构体,两部分,一个数据,一个指针
    }linklist;

    //主菜单
    void menu()
    {
    printf("\n******************************\n");
    printf("1. 创建单链表\n");
    printf("2. 向单链表中插入一个元素\n");
    printf("0. 退出\n");
    printf("\n******************************\n");
    }

    void menu_bye()
    {
    printf("\n******************************\n");
    printf("\n欢迎再次使用\n");
    printf("\n 再见\n");
    printf("\n******************************\n");
    }

    linklist *creat()
    {
    linklist *head,*p,*q;
    head=(linklist *)malloc(sizeof(struct node));
    head->next=NULL;
    p=q=(linklist *)malloc(sizeof(struct node));
    head->next=p;
    p->next=NULL;
    scanf("%d",&(p->data));
    while(p->data!=-1)
    {
    q->next=p;
    q=p;
    p=(linklist *)malloc(sizeof(struct node));
    scanf("%d",&(p->data));
    }
    q->next=NULL;
    return head;
    }
    //输出链表的值
    void print(linklist *head)
    {
    linklist *p;
    p=head->next;
    if(p==NULL)
    {
    printf("空链表!");
    }
    do
    {
    printf("%4d",p->data);
    p=p->next;
    }while(p!=NULL);

    printf("\n");
    }

    linklist *h;

    //主函数
    void main()
    {
    menu();
    int n;
    while(1)
    {
    printf("请输入(0-7):");
    scanf("%d",&n);
    if(n<0 || n>7)
    printf("没有此值,请重新输入!\n");

    switch(n)
    {
    case 0:
    system("cls");
    menu_bye();
    exit(0);
    case 1:
    printf("请输入一串整数,以空格分隔,以-1结束!\n");
    h=creat();
    print(h);
    break;
    case 2:
    int number,pos;
    printf("\n输入要插入结点的值和位置:");
    scanf("%d%d",&number,&pos);
    // insertlinklist(h,number,pos);
    print(h);
    break;
    }
    }
    }

     运行结果 :

     

  • 相关阅读:
    websocket 初识
    JavaScript 系列博客(四)
    JavaScript 系列博客(三)
    JavaScript 系列博客(二)
    JavaScript 系列博客(一)
    前端(八)之形变
    前端(七)之动画与阴影
    java变量、数据类型
    js简单的获取与输出
    Eclipse字体修改
  • 原文地址:https://www.cnblogs.com/duanqibo/p/16206417.html
Copyright © 2020-2023  润新知