栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言链表

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言链表

链表

链表是一种数据类型,用于存储同种类型的批量数据。

数组的缺点:

  • 静态分配:需要定义,编译时分配空间,程序执行时不能改变该存储区的大小。
  • 必须占用连续的存储空间。

链表按需求动态分配存储空间:

  1. 使用C语言提供的标准函数malloc
  2. 掌握一个便准函数的用法,需要做到以下3点:
  1. 记忆函数名并明确函数功能。
  2. 形参的个数及类型
  3. 函数是否有值,值的类型与含义

malloc的功能:动态分配一个存储单元,形参一个无符号整数,决定存储单元所占据的字节数,函数返回类型位void*,值为该单元的地址。

例如:malloc(4)

             1000                                  1                                     2                                    3

该单元是动态生成的,应通过指针间接访问。

int *p;

p=(int*)malloc(4);

p=(int *)malloc(sizeof(int));

*p表示当前所指向的单元,但单元的大小是有P的基类型决定的。

  • sizeof()是C语言中的一个运算符。
  • 运算量放在小括号中,可以是类型名,变量名和常量。
  • 其值为该类型的量在内存中所占的字节数。
  • p++是,越过一个单元,单元的大小依然由p的基类型决定
  1. 键盘输入一串字符,以回车结束,适用与字符个数相同的存储单元将其存放起来。

while((ch=getchar())!=’n’)

{

malloc(1);

}

char *p;

while((ch=getchar())!=’n’)

{

p=(char *)malloc(1);

*p=ch;

}

若键盘输入abcd回车

abc将无法被表示

 一个存储单元被分成两个部分,每部分存储的数据类型还是不同的

链表中节点类型的定义:

struct node

{

char data;

struct node *naxt;

}

若键盘输入abcd回车

char *p;

while((ch=getchar())!=’n’)

{

   p=(char *p)malloc(1);

   *p=ch;

}

struct node *p;

while((ch=getchar())!=’n’)

{

   P=(struct node *)malloc(sizeof(struct node));

  1. >data=ch;

}

程序中用到malloc()时,要包含stdlib.h

#include
#include
typedef struct node
{
	char data;   //代表数据域 
	struct node *next; //代表指针域,指向直接后继元素 
	
}Node, *LinkList;   //LinkList被声明为Node的指针,是指向下一个结点的后继指针 
LinkList create()
{
	LinkList h,r,s;
	char ch;
	h=(LinkList)malloc(sizeof(Node));  //创建首原结点,并初始化 
	r=h;     //头指针指向首原结点 
	while((ch=getchar())!='n')
	{
		s=(LinkList)malloc(sizeof(Node));   //创建第一个新结点并初始化 
		s->data=ch;
		r->next=s;
		r=s;   //建立新结点与直接前驱结点的逻辑关系 
	} 
	r->next=0;
	return h;   //返回建立的结点,返回头指针h即可通过头指针找到整个链表 
}
int main()
{
	LinkList head,p;
	head=create();
	p=head->next;
	while(p)
	{
		printf("%c",p->data);
		p=p->next; 
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号