C语言版数据结构:[2]链表的建立。

链表其实是线性表的链接存储方式,这种方式下的存储单元可以是连续的,也可以是不连续的。这里我们主要讨论链表的尾插法,头插法和尾插法基本类似。坐标为您分享。

操作方法

  • 01

    一、链表的建立分为带头结点的头插法和带头结点的尾插法,第一种方法插入顺序和输出顺序是相反的。第二种方法插入顺序和输出顺序是一致的。这里我们主要介绍尾插法,头插法基本类似。

  • 02

    二、首先对头文件、数据结构、链表结点结构等进行声明。

  • 03

    #include <stdio.h> #include <stdlib.h> #define null 0 typedef struct snode { char *name; char *no; int score[5]; }typedefdata; typedef struct node { typedefdata data; struct node *next; }linklist;

  • 04

    三、首先介绍带头文件的尾插法建立链表。 /*尾插法建立带头结点的单链表*/ linklist *insert_new() { char flag; int x; char *na; char *num; int grade[5]; linklist *head,*rear,*p; head = (struct node*)malloc(sizeof(linklist));//头节点的空间分配 rear = head;//头尾相连进行初始化 do{//do-while语句保证至少进行一次。 printf("name:"); scanf("%s",&na); printf("No.:"); scanf("%s",&num); printf("yuwen_grade:"); scanf("%d",&grade[0]); printf("shuxue_grade:"); scanf("%d",&grade[1]); printf("yingyu_grade:"); scanf("%d",&grade[2]); printf("zhengzhi_grade:"); scanf("%d",&grade[3]); printf("tiyu_grade:"); scanf("%d",&grade[4]); p = (struct node*)malloc(sizeof(linklist)); p->data.name = na; p->data.no = num; for(x=0;x<5;x++) p->data.score[x] = grade[x]; rear->next = p; rear = p; printf("\n\n continue?q for quit!"); getchar();//吸收缓冲区中的'\n'换行符。 至于为什么要用这个可以参考我的另外一篇经验《scanf和getchar执行时被跳过是怎么回事?》有详细介绍。 scanf("%c",&flag); }while(flag != 'q'); rear->next = null; return (head); } /*尾插法建立带头结点的单链表*/

  • 05

    四、头插法建立链表。 头插法其实与尾插法的最大不同是每次新增的节点都是从head处添加,需要修改的就是 for(x=0;x<5;x++) p->data.score[x] = grade[x]; p->next = head->next; head->next = p; printf("\n\n continue?q for quit!");

  • 06

    五、主函数的编写。 int main() { insert_new(); return 0; }

  • 07

    六、测试我们只测试尾插法。

(0)

相关推荐

  • C语言版数据结构:[1]线性顺序表

    在数据结构中,线性表是入门级数据结构,线性表又分为顺序表和链表,这一节我们就说一下线性顺序表的C语言实现.坐标为您分享. 操作方法 01 第一步:线性顺序表的创建. 线性顺序表是存储在一个连续的数组中 ...

  • 怎么在手机版腾讯会议快速建立会议

    手机版腾讯会议软件被很多人使用,用来参加会议等, 有的用户用到了特别紧急的事情,因此想要快速建立会议,但是却不知道如何操作,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并打开腾讯会议软件 ...

  • MYSQL-Front中文多语言版图文使用教程

    一款小巧的管理Mysql的应用程序.主要特性包括多文档界面,语法突出,拖拽方式的数据库和表格。 可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执行的SQL 脚本,提供与外程序接 ...

  • Win10一周年更新预览版14367中本地账户建立更方便

    在Win10一周年更新预览版14367安装程序中,后续设置步骤进行了改进,用户使用本地账户登录系统将更加方便,无需再像之前那样费心寻找. 根据最新的设定,用户在“选择您的连接方式”界面可以直接选择“加 ...

  • 2003版EXCLE中用事件宏建立加载菜单的方法

    打开2003版EXCLE,就可以建立一个事先设计好的菜单,而这个菜单要求是必须通过事件宏启动 Private Sub Workbook_Open() ( 加载菜单内容代码) End Sub 方法/步骤 ...

  • Win10 Build 17035自制64位中国版十合一ISO镜像下载地址

    win10镜像 Build 170325 ISO映像文件可以下载.微软今天发布了一个新的Windows 10更新17035红石4建立新的功能和各种bug修复. 最新内幕建设增加了新的近的分享功能.有了 ...

  • 数据结构中链表的应用,插入,查询,删除,显示

    数据结构中单链表的运用,介绍几种,链表的:灵活使用,查询.修改.插入与删除.以及输出. 操作方法 01 建立链表 02 遍历显示链表 03 提取链表中的元素 04 更改数据 05 插入数据 06 删除 ...

  • WinSCP绿色版详细使用介绍

    一、WinSCP简介: WinSCP是一个windows环境下使用的SSH的开源图形化SFTP客户端。他拥有用户图形化界面,并有多语言版,满足各国客户的需求,支持SSH-1、SSH-2的SFTP和SC ...

  • Win8标准版.Win8企业版.Win8专业版功能

    Win8版本到底有哪些? Windows8的各版本有什么不同、差别和区别? Win8旗舰版有木有? Win8最好的版本是哪个? 我应该用哪个版本的Windows8? 之前软媒曾经在今年更早时间解释了W ...