⑴ 在C 语言中“单向链表结点数据域”是指什么
数据域指定义结点的结构类型时,用于存放数据的变量,例如楼上举例说的data,这是个变量名,你可以起别的名字,但在链表结构中大家通常都取名为data
⑵ 数据结构哪些是四种常见的逻辑结构
数据结构四种常见的逻辑结构:
1、集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;
2、线性结构:数据结构中的元素存在一对一的相互关系;
3、树形结构:数据结构中的元素存在一对多的相互关系;
4、图形结构:数据结构中的元素存在多对多的相互关系。
(2)数据域用来存放什么扩展阅读
逻辑结构分为两种:
线性结构和非线性结构(集合、树、网)。
线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。
例如:线性表,典型的线性表有:顺序表、链表、栈(顺序栈、链栈)和队列(顺序队列、链队列)。它们共同的特点就是数据之间的线性关系,除了头结点和尾结点之外,每个结点都有唯一的前驱和唯一的后继,也就是所谓的一对一的关系。
非线性结构:对应于线性结构,非线性结构也就是每个结点可以有不止一个直接前驱和直接后继。常见的非线性结构包括:树(二叉树)、图(网)等。
⑶ 链表到底啥意思没弄太明白,请大牛帮忙讲一下,最好附带点程序段(c或c++)
一、单链表的建立
有了动态内存分配的基础,要实现链表就不难了。
所谓链表,就是用一组任意的存储单元存储线性表元素的一种数据结构。链表又分为单链表、双向链表和循环链表等。我们先讲讲单链表。所谓单链表,是指数据接点是单向排列的。一个单链表结点,其结构类型分为两部分:
1、数据域:用来存储本身数据
2、链域或称为指针域:用来存储下一个结点地址或者说指向其直接后继的指针。
例:
typedef struct node
{
char name[20];
struct node *link;
}stud;
这样就定义了一个单链表的结构,其中char name[20]是一个用来存储姓名的字符型数组,指针*link是一个用来存储其直接后继的指针。
定义好了链表的结构之后,只要在程序运行的时候爱数据域中存储适当的数据,如有后继结点,则把链域指向其直接后继,若没有,则置为NULL。
下面就来看一个建立带表头(若未说明,以下所指链表均带表头)的单链表的完整程序。
#include <stdio.h>
#include <malloc.h> /*包含动态内存分配函数的头文件*/
#define N 10 /*N为人数*/
typedef struct node
{
char name[20];
struct node *link;
}stud;
stud * creat(int n) /*建立单链表的函数,形参n为人数*/
{
stud *p,*h,*s; /* *h保存表头结点的指针,*p指向当前结点的前一个结点,*s指向当前结点*/
int i; /*计数器*/
if((h=(stud *)malloc(sizeof(stud)))==NULL) /*分配空间并检测*/
{
printf("不能分配内存空间!");
exit(0);
}
h->name[0]='\0'; /*把表头结点的数据域置空*/
h->link=NULL; /*把表头结点的链域置空*/
p=h; /*p指向表头结点*/
for(i=0;i<n;i++)
{
if((s= (stud *) malloc(sizeof(stud)))==NULL) /*分配新存储空间并检测*/
{
printf("不能分配内存空间!");
exit(0);
}
p->link=s; /*把s的地址赋给p所指向的结点的链域,这样就把p和s所指向的结点连接起来了*/
printf("请输入第%d个人的姓名",i+1);
scanf("%s",s->name); /*在当前结点s的数据域中存储姓名*/
s->link=NULL;
p=s;
}
return(h);
}
main()
{
int number; /*保存人数的变量*/
stud *head; /*head是保存单链表的表头结点地址的指针*/
number=N;
head=creat(number); /*把所新建的单链表表头地址赋给head*/
}
这样就写好了一个可以建立包含N个人姓名的单链表了。写动态内存分配的程序应注意,请尽量对分配是否成功进行检测。
⑷ 活动记录的活动记录中各种域的作用
如下:
(1) 临时变量域——用来存放目标程序临时变量的值,如计算表达式时所产生的结果;
(2) 局部数据域——用来存放过程本次执行中的局部数据、简单变量以及数组内情向量等;
(3) 机器状态域——用来保存在调用一个过程之前有关机器状态的信息,其中包括各种寄存器的当前值和返回地址等;
(4) 任选的存取链——为访问其它活动记录中所存放的非局部数据提供链地址(这在PASCAL语言中是需要用到的);
(5) 任选的控制链——用以指向主调过程的活动记录;
(6) 实在参数——用于存放主调过程为被调用过程所提供的实在参数信息(在活动记录中,我们列出了实在参数的存放空间,但是为了提高效率,有时参数是通过机器寄存器来传递的);
(7) 返回值域——被调用过程用来为主调过程存放返回值的域。
每个活动记录都可分为定长部分和可变部分。定长部分用来存放那些在编译时就能确定其体积的量,如简单变量、常界数组等;可变部分用来存放只有在运行时,才能确定其体积的量,如可变数组、动态指针等。虽然只有在运行时,才能为这些可变体积的数据在活动记录的可变部分分配其存储空间,但在编译时却能产生通过活动记录的首地址(一般用一个指示器指示)来访问它们的目标代码,这是因为在该活动记录的定长部分,已设定了存放确定其体积的有关信息的域(如数组的内情向量),而这些域在活动记录中的相对位置是恒定的。
⑸ 在链表中的一个结点的数据域和指针域有什么关系的
数据域,就是存放这个节点的数据,指针域,存放的是另一个节点的地址,比如说单链表,指针域存放的就是后一个节点的地址。因为链表的节点在逻辑上是连续的,但是每个节点的物理地址可能不连续,就需要用一个指针,指向下一个节点的地址,这样,才能在找到一个节点后,继续寻找下一个节点。
⑹ 标题订单和仓库的关系数据表应该有哪些属性
标题订单和仓库的关系数据表应该有数据域属性。因为数据域主要用于存放标题订单和仓库关系数据表统一业务板块的指标。所以标题订单和仓库的关系数据表应该有数据域属性。订单,订购货物的合同、单据。
⑺ JAVA术语“域”和“数据域”是什么意思
域就是范围的意思
例{}之间,称为一块域,用来描述变量适用范围,全局变量的域是整个类,局部变量只适用于他所在的{}之间,
数据域是存放数据,一个存储数据元素的数据域
⑻ 用户域和数据域的区别
数据域是对数据的领域划分,这种划分使得数据域在一个大的上下文中形成一个较为明显的边界。这种划分的依据或者角度是不同的,比如可以从业务的角度,也可以从数据治理的角度等。但这些角度本质可能是互通的,因为最终的结果和目的可能是相同的域账号是把帐号存储于域中的某一台服务器,分享给同一个域中的所有计算机使用。如果想更改域帐号的有关数据,直接修改域帐号服务器中的帐号,其他计算机就可立即获取更新后的帐号数据。Windows域是计算机网络的一种形式,其中所有用户帐户,计算机,打印机和其他安全主体都在位于称为域控制器的一个或多个中央计算机集群上的中央数据库中注册。身份验证在域控制器上进行。 在域中使用计算机的每个人都会收到一个唯一的用户帐户,然后可以为该帐户分配对该域内资源的访问权限。另外我们常听到的关于数据域就是领域建模、领域驱动设计。其理论是一样的,只是上下文粒度、边界发生了改变域(Domain)是网络对象的逻辑组织单元,域既是 Windows 网络操作系统环境下intranet的逻辑组织单元,也是Internet的逻辑组织单元。这些对象如:用户、组和计算机等。域中所有的对象都存储在 Active Directory 下。Active Directory 可以常驻在某个域中的一个或多个域控制器下。 当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。⑼ 数据域指针域是什么东西怎么么用啊c++
可以看作是链式数据结构的一个基本元素吧。如果用链式结构实现线性表、树、图等数据结构的话,就要用到这个。
有个基本概念,叫自引用结构。就是在一个struct或类里有若干字段,其中一个字段是指向该类的一个指针。
例:
struct Node
{
int data;
Node* next;
};
这个最简单的链表结点定义中,data就是数据域,next就是指针域。
再比如二叉树;
struct BinTree
{
int data1,data2;
float data3,data4;
BinTree* leftchild,rightchild,parent;
};
这个里面,data1,data2,data3,data4是数据域,是存储用户真正想存储的数据的,leftchild,rightchild,parent就够成了指针域,用于构造链式二叉树结构。