笔记:数组基础概念及广义表

数组的基础概念:

1.元素:数组中存储的数据单元,每个元素都具有相同的数据类型。

2.下标:用来表示数组中每个元素在数组中所处位置的整数值,也称为索引。

3.大小(长度):数组中元素的个数,也称为容量。

4.类型:在定义数组时需要指定数据类型,例如 int、double、char 等。

简单了解数组指针和指针数组的区别:

1.数组指针

数组指针也称为指向数组的指针,是指一个指针变量,该指针变量指向一个数组。通常用数组指针来间接引用数组元素。

2.指针数组

指针数组是一个数组,其中的每个元素都是指针类型。

以下展示二者的区别:

#include <stdio.h>

int main() 
{
int a[2][5] ={1,2,3,4,5,6,7,8,9,10};
    int *p1[2];         // 指针数组,可理解为两个int型的指针,p1[0],p1[1].
    int (*p2)[5]=a;     // 数组指针,它指向的是一块长度为5的int型数组的首地址
    
    p1[0]=a[0],p1[1]=a[1];
    
    printf("a[0]=%d,*p1[0]=%d,*p1[1]=%d,(*p2)[0]=%d\n",a[0][0],*p1[0],*p1[1],(*p2)[0]);
    
    printf("a[0]=%d,*(p1[0]+1)=%d,*(p1[1]+1)=%d,*(p2+1)[0]=%d\n",a[0][0],*(p1[0]+1),*(p1[1]+1),*(p2+1)[0]);
    
    
    return 0;
}

从运行结果中不难看出,指针数组加1其实就是在列上加了1,而数组指针加1是对行进行了加1的操作。

广义表的基础概念:

1.原子:广义表中不再可分解的基本数据项,可以是任何数据类型。

2.子表:广义表中嵌套的另一个广义表,也可以看做广义表的一个元素。

3.头部:广义表中第一个元素,可以是原子或子表。

4.尾部:广义表中除了头部之外的部分,可以是空表或另一个广义表。

5.长度:广义表中元素的个数,包括头部和尾部。

(1, (2, 3, 4))

在这个广义表中,第一个元素是整数1,第二个元素是一个子表 (2, 3, 4),它包含了三个整数元素。子表也可以再包含子表,因此广义表可以非常灵活地表示各种复杂的数据。

广义表的递归定义为:

  • 空表是广义表;
  • 任何单一元素构成的表均为广义表;
  • 由若干个广义表构成的有限序列,可以组成一个广义表。

例如,以下展示了一个由三个子表组成的广义表:

[1, [2, 3], [4, [5, 6], 7]]

总而言之,广义表是一种灵活、可递归扩展的数据结构,它可以用于表示各种复杂的数据。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值