肃宁一中艺术节
当前位置:肃宁一中艺术节 > IT相关 > 算法 > 正文  |  快速导航:行业资讯 软件测试 风云人物 计算机英语 游戏开发 移动应用 地图开发 算法 程序员
  • 旧业已随征战尽:链表功能的使用C语言实现(10)

  • 字号:[ ]2013-10-20 11:09:39  阅读:198次  来源:乐猪网  编辑:银河精灵  收藏
  • 摘要:在前面已经讲了很多关于链表的知识和实例,在这里再列举了一个应用单链表基本算法的综合程序,双向链表和循环链表的综合程序,也算是对前面的知识进行一个总结,有空大家可以自己去试一试。
  • 肃宁一中艺术节 www.sdaiyun.cn 这个实例主要功能包括:
        1.建立新表
        2.查找数据
        3.插入数据
        4.删除数据
        5.打印数据
        6.退出系统

    #include <stdio.h> 
    #include <malloc.h> 
    #include <string.h> 
    #define N 10 typedef struct node 
    { 
        char name[20]; 
        struct node *link; 
    }stud; 
       
    stud * creat(int n) 
    { 
        stud *p,*h,*s; 
        int i; 
        if((h=(stud *)malloc(sizeof(stud)))==NULL) 
        { 
            printf("不能分配内存空间!"); 
            exit(0); 
        } 
        h->name[0]='\0'; 
        h->link=NULL; 
        p=h; 
        for(i=0;i<n;i++) 
        { 
            if((s= (stud *) malloc(sizeof(stud)))==NULL) 
            { 
                printf("不能分配内存空间!"); 
                exit(0); 
            } 
            p->link=s; 
            printf("请输入第%d个人的姓名",i+1); 
            scanf("%s",s->name); 
            s->link=NULL; 
            p=s; 
        } 
        return(h); 
    } 
       
    stud * search(stud *h,char *x) 
    { 
        stud *p; 
        char *y; 
        p=h->link; 
        while(p!=NULL) 
        { 
            y=p->name; 
            if(strcmp(y,x)==0) 
                return(p); 
            else p=p->link; 
        } 
        if(p==NULL) 
        printf("没有查找到该数据!"); 
    } 
       
    stud * search2(stud *h,char *x) 
    { 
        stud *p,*s; 
        char *y; 
        p=h->link; 
        s=h; 
        while(p!=NULL) 
        { 
            y=p->name; 
            if(strcmp(y,x)==0) 
                return(s); 
            else
            { 
                p=p->link; 
                s=s->link; 
            } 
        } 
        if(p==NULL) 
            printf("没有查找到该数据!"); 
    }    
       
    void insert(stud *p) 
    { 
        char stuname[20]; 
        stud *s; 
        if((s= (stud *) malloc(sizeof(stud)))==NULL) 
        { 
            printf("不能分配内存空间!"); 
            exit(0); 
        } 
        printf("\n请输入你要插入的人的姓名:"); 
        scanf("%s",stuname); 
        strcpy(s->name,stuname); 
        s->link=p->link; 
        p->link=s; 
    } 
       
    void del(stud *x,stud *y) 
    { 
        stud *s; 
        s=y; 
        x->link=y->link; 
        free(s); 
    } 
       
    void print(stud *h) 
    { 
        stud *p; 
        p=h->link; 
        printf("数据信息为:\n"); 
        while(p!=NULL) 
        { 
            printf("%s ",&*(p->name)); 
            p=p->link; 
        } 
    } 
       
    void quit() 
    { 
        exit(0); 
    } 
       
    void menu(void) 
    { 
        clrscr(); 
        printf("\t\t\t单链表C语言实现实例\n"); 
        printf("\t\t|————————————————|\n"); 
        printf("\t\t| |\n"); 
        printf("\t\t| [1] 建 立 新 表 |\n"); 
        printf("\t\t| [2] 查 找 数 据 |\n"); 
        printf("\t\t| [3] 插 入 数 据 |\n"); 
        printf("\t\t| [4] 删 除 数 据 |\n"); 
        printf("\t\t| [5] 打 印 数 据 |\n"); 
        printf("\t\t| [6] 退 出 |\n"); 
        printf("\t\t| |\n"); 
        printf("\t\t| 如未建立新表,请先建立! |\n"); 
        printf("\t\t| |\n"); 
        printf("\t\t|————————————————|\n"); 
        printf("\t\t 请输入你的选项(1-6):"); 
    } 
       
    main() 
    { 
        int choose; 
        stud *head,*searchpoint,*forepoint; 
        char fullname[20]; 
       
        while(1) 
        { 
            menu(); 
            scanf("%d",&choose); 
            switch(choose) 
            { 
                case 1:head=creat(N); 
                    break; 
                case 2:printf("输入你所要查找的人的姓名:"); 
                    scanf("%s",fullname); 
                    searchpoint=search(head,fullname); 
                    printf("你所查找的人的姓名为:%s",*&searchpoint->name); 
                    printf("\n按回车键回到主菜单。"); 
                    getchar();getchar(); 
                    break; 
                case 3: printf("输入你要在哪个人后面插入:"); 
                    scanf("%s",fullname); 
                    searchpoint=search(head,fullname); 
                    printf("你所查找的人的姓名为:%s",*&searchpoint->name); 
                    insert(searchpoint); 
                    print(head); 
                    printf("\n按回车键回到主菜单。"); 
                    getchar();getchar(); 
                    break; 
                case 4:print(head); 
                    printf("\n输入你所要删除的人的姓名:"); 
                    scanf("%s",fullname); 
                    searchpoint=search(head,fullname); 
                    forepoint=search2(head,fullname); 
                    del(forepoint,searchpoint); 
                    break; 
                case 5:print(head); 
                    printf("\n按回车键回到主菜单。"); 
                    getchar();getchar(); 
                    break; 
                case 6:quit(); 
                    break; 
                    default:printf("你输入了非法字符!按回车键回到主菜单。"); 
                    clrscr(); 
                    menu(); 
                    getchar(); 
            } 
        } 
    }

        有关链表教程,到这里10节内容全部讲完。对于链表的学习,还需要靠自己多看书,看动手练练,这样更容易加深对链表的认识!

  • 顶一下
    (0)
    0%
    踩一下
    (0)
    0%
肃宁一中艺术节 版权所有 Copyright © 2012-2015 www.sdaiyun.cn All rights reserved.
本站用于学习交流,部分文章来源于网络,如果不慎侵犯了您的权益,请联系我们删除!
粤ICP备12000837号
武汉助孕包成功 | 上海代孕机构 | 代孕 | 深圳代孕 | 广州代怀孕 |
  • 中国科学家研制出新型类脑计算芯片_男生女生金版 2019-10-17
  • 湖北省最大单体新华书店落户黄冈_263聊天 2019-10-17
  • 报告:中国内地金融科技采纳率高达87% 持续领跑全球_鑫泉方酒 2019-10-17
  • 借力冬奥 张家口从“菜地”变“滑雪胜地”_演员证 2019-10-16
  • 2019第四届中国迁安国际山地越野马拉松成功举行_赤字增加的时期是 2019-10-16
  • 南宫市西乞村:“空心村”变形记_康逸琨男友华汉 2019-10-16
  • 持续拓展全球伙伴关系网络_华通医药中签号 2019-10-16
  • 浅谈机器人的研究与发展_与美男群居的日子 2019-10-16
  • “经济身份证” 升级出新招(经济聚焦)_jc教你学跳舞nuabo 2019-10-16
  • 铜梁区职教中心龙舞社团斩获中职组一等奖_王伟准备用一段长30米 2019-10-15
  • 广州警企联手织密“反诈防护网”_庄立帆 2019-10-15
  • 【视频】巴拿马总统宣布同中国建交:世界上只有一个中国!_折星星的方法 2019-10-15
  • 军运会游泳测试赛在武汉体育中心开幕 黄冈新闻网_黑道成王 2019-10-14
  • 群众办事百项堵点疏解行动——第二季投票结果_怀柔板栗 2019-10-14
  • 一人有难 众台胞相助_合肥澳门豆捞团购 2019-09-28
  • 武汉助孕包成功 | 上海代孕机构 | 代孕 | 深圳代孕 | 广州代怀孕 |
  • 中国科学家研制出新型类脑计算芯片_男生女生金版 2019-10-17
  • 湖北省最大单体新华书店落户黄冈_263聊天 2019-10-17
  • 报告:中国内地金融科技采纳率高达87% 持续领跑全球_鑫泉方酒 2019-10-17
  • 借力冬奥 张家口从“菜地”变“滑雪胜地”_演员证 2019-10-16
  • 2019第四届中国迁安国际山地越野马拉松成功举行_赤字增加的时期是 2019-10-16
  • 南宫市西乞村:“空心村”变形记_康逸琨男友华汉 2019-10-16
  • 持续拓展全球伙伴关系网络_华通医药中签号 2019-10-16
  • 浅谈机器人的研究与发展_与美男群居的日子 2019-10-16
  • “经济身份证” 升级出新招(经济聚焦)_jc教你学跳舞nuabo 2019-10-16
  • 铜梁区职教中心龙舞社团斩获中职组一等奖_王伟准备用一段长30米 2019-10-15
  • 广州警企联手织密“反诈防护网”_庄立帆 2019-10-15
  • 【视频】巴拿马总统宣布同中国建交:世界上只有一个中国!_折星星的方法 2019-10-15
  • 军运会游泳测试赛在武汉体育中心开幕 黄冈新闻网_黑道成王 2019-10-14
  • 群众办事百项堵点疏解行动——第二季投票结果_怀柔板栗 2019-10-14
  • 一人有难 众台胞相助_合肥澳门豆捞团购 2019-09-28