`

给far的单链表代码

阅读更多
纯纪念
#include <stdio.h>
#include <stdlib.h>
struct student
{
	char	name[20];
	struct student *next;
};

//  创建一个结点的函数
struct student* createNode()
{
  struct student* p = (struct student *)malloc(sizeof(struct student));
  p->next = NULL;
  return p;
}

//  加结点有两种,一是在头加,一是在尾加
struct student* addHeadNode(struct student *p)
{
  struct student *head = createNode();
  head->next = p;
  return head;
}

//struct student * addTailNode(struct student *p)

//  增加size
struct student* addSizeNode(struct student *head, int size)
{
  int i = 0;
	for (i=0; i < size; i++)
	{
		head = addHeadNode(head);
	}
  return head;
}


//  获取链表大小
int getSize(struct student *p)
{
  int size = 0;
  while (p != NULL)
  {
    size++;
    p = p->next;
  }

  return size;
}

//  对结点赋值
void setNode(struct student *p)
{
  gets(p->name);
}

//  对整个链表赋值
void setList(struct student *head)
{
  while (head != NULL)
  {
    setNode(head);
    head = head->next;
  }
}

//  打印链表
void printList(struct student *head)
{
  while (head != NULL)
  {
    printf("name = %s\n", head->name);
    head = head->next;
  }
}


int main(int argc, char *argv[])
{	
  //  链表头结点
  struct student* head;


  head = createNode();
  printf("link list size = %d\n", getSize(head));
  

  head = addSizeNode(head, 1);
  printf("link list size = %d\n", getSize(head));


  setList(head);
  printList(head);


	return 0;
}


使用typedef后
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
	char	name[20];
	struct student *next;
} * Student;

//  创建一个结点的函数
Student createNode()
{
  Student p = (struct student *)malloc(sizeof(struct student));
  p->next = NULL;
  return p;
}

//  加结点有两种,一是在头加,一是在尾加
Student addHeadNode(Student p)
{
  struct student *head = createNode();
  head->next = p;
  return head;
}

//struct student * addTailNode(Student p)

//  增加size
Student addSizeNode(Student head, int size)
{
	int i = 0;
	for (i=0; i < size; i++)
	{
		head = addHeadNode(head);
	}
  return head;
}


//  获取链表大小
int getSize(Student  p)
{
  int size = 0;
  while (p != NULL)
  {
    size++;
    p = p->next;
  }

  return size;
}

//  对结点赋值
void setNode(Student p)
{
  gets(p->name);
}

//  对整个链表赋值
void setList(Student head)
{
  while (head != NULL)
  {
    setNode(head);
    head = head->next;
  }
}

//  打印链表
void printList(Student head)
{
  while (head != NULL)
  {
    printf("name = %s\n", head->name);
    head = head->next;
  }
}


int main(int argc, char *argv[])
{	
  //  链表头结点
  Student head;


  head = createNode();
  printf("link list size = %d\n", getSize(head));
  

  head = addSizeNode(head, 1);
  printf("link list size = %d\n", getSize(head));


  setList(head);
  printList(head);


	return 0;
}
分享到:
评论

相关推荐

    自适应门限os_far matlab源代码

    自适应门限os_far matlab源代码

    FAR-2.0.3-win_search_

    用户可以使用这个版本的FAR Manager来快速查找硬盘上包含特定文字的文件,无论这些文件是文本、代码、日志还是其他类型的文档。 在压缩包子文件的文件名称列表中只有一个条目"far",这可能是FAR Manager的安装程序...

    FAR chm制作工具

    【标题】:“FAR chm制作工具” 在IT领域中,FAR不仅仅是一个常见的文件管理器,它还被用于创建CHM(Compiled Help Manual)文件。CHM是一种微软的编译帮助文件格式,广泛用于软件的帮助文档,因为它能提供快速的...

    oracle 12c far sync instance

    完成以上步骤后,far sync instance就能正常工作,它会实时接收主数据库的redo日志,并立即转发给备用数据库,从而极大地减少了数据复制的延迟,提高了灾难恢复的效率。在实际部署中,可能还需要关注网络性能、安全...

    刷机软件FAR下载刷机VKP补丁

    【标题】"刷机软件FAR下载刷机VKP补丁"主要涉及到的是手机系统升级或恢复的操作,其中FAR是一款常用于索尼爱立信系列手机的刷机工具,而VKP补丁则是针对该品牌手机的一种特定更新文件。本文将深入探讨FAR软件的用途...

    install_5.2_far采集插件_苹果cms_

    苹果CMS是一款广泛使用的开源视频网站管理系统,而"install_5.2_far采集插件_苹果cms_"这个标题指的是为苹果CMS系统安装一个名为"FAR"的版本5.2的采集插件。采集插件在内容管理系统中扮演着重要的角色,它们能够自动...

    FAR-25-2009_1.pdf

    《联邦航空条例》(FAR)第25部分是关于运输类别飞机适航标准的规定,这部分主要涉及飞行性能、操控性、稳定性和地面及水上操作特性等方面,对于确保飞机的安全性至关重要。以下是对这些章节的详细解释: **1. 适用...

    台湾地区银行汇款代码SWIFT 代码大全.pdf

    30. 远东国际商业银行:FAR EASTERN INTERNATIONAL BANK - FEINTWTPXXX 31. 阳信商业银行:SUNNY BANK - SUNYTWTPXXX 32. 高雄银行:BANK OF KAOHSIUNG - BKAOTWTKXXX 33. 汇丰银行(原中华银行):HSBC (FORMERLY ...

    FAR帮助文档制作工具

    FAR 不仅具有超强的文本查找和替换功能,它更是目前公认为最好的帮助文件制作软件。它除了能制作 目前流行的 HTML 帮助文件(即 CHM 文件)之外,还能制作新一代的、在 Visual Studio .NET 下工作的 帮助文件(即...

    java—FAR HTML

    Java—FAR HTML 是一个与Java编程语言相关的概念,它涉及到在Java中处理HTML文档的技术。在Java领域,处理HTML通常是为了实现Web应用、爬虫、网页解析或自动化测试等任务。下面我们将深入探讨这个主题。 1. **Java...

    上古卷轴5:全控制台NPC代码

    88. **Svana Far-Shield** (代码: 1337C) - Riften的一位女性诺德人。 以上NPC代码只是游戏中的冰山一角。通过这些代码,玩家可以快速地召唤出想要的角色进行互动或完成任务。值得注意的是,在使用这些代码时,应当...

    near_to_far_EM.zip_FDTD 近远场_fdtd_near to far_近远场_远场

    标题中的"near_to_far_EM.zip_FDTD 近远场_fdtd_near to far_近远场_远场"指的是一个基于FDTD(Finite-Difference Time-Domain)方法的电磁仿真项目,该项目着重于将计算得到的近场数据转换为远场数据。FDTD是一种...

    far_html_commandline

    总的来说,"Far HTML Commandline"是提高HTML文件管理效率的利器,特别是对于那些经常处理大量HTML代码的IT专业人员。掌握它的使用,不仅可以节省时间,还能减少出错的可能性,是Web开发和运维工作中的得力助手。

    Oracle 12c Active Data Guard Far Sync

    ctive Data Guard Far Sync是Oracle 12c的新功能(也称为Far Sync Standby),Far Sync功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 同步(synchronous)...

    FAR HTML帮助文档生成工具

    FAR 不仅具有超强的文本查找和替换功能,它更是目前公认为最好的帮助文件制作软件。它除了能制作 目前流行的 HTML 帮助文件(即 CHM 文件)之外,还能制作新一代的、在 Visual Studio .NET 下工作的 帮助文件(即 MS ...

    Spectrum sensing using FFT Averaging Ratio (FAR) Algorithm

    在提供的文件列表中,"SS_demo.m"可能是MATLAB实现的FAR算法演示代码。MATLAB是一种强大的数值计算和仿真工具,常用于算法开发和验证。通过阅读和理解这段代码,我们可以深入理解FAR算法的工作原理及其在实际应用中...

    索爱手机刷入文件的FAR

    索爱手机刷入文件的FAR 很简单的操作 希望你们能喜欢

    基于小波变换的水文预报FAR模型 (2011年)

    基于月径流时间序列的非平稳性特点, 首先, 将小波变换与函数系数自回归(FAR)模型相结合, 利用Mal-lat算法中的Daubechies小波变换和多项式样条估计, 建立了基于小波变换的水文预报FAR模型。然后, 根据长江芜湖...

    FARAWAY

    标题"FARAWAY"可能指的是一个特定的字体或者与远距离、遥远相关的概念在IT行业中。在设计领域,特别是字体设计,"FARAWAY"可能是设计师为某个项目创造的独特字体系列,它可能具有独特的风格,如粗体、斜体或手写体,...

    Far+jdflasher

    sonyerssion s500 刷机套装Far+jdflasher.part2内附说明

Global site tag (gtag.js) - Google Analytics