数据对象在计算机中如何组织?
探索数据在计算机中的处理过程是输入设备--存储设备--控制设备、存储、运算设备--存储设备--输出设备
计算机先要输入数据,然后输入数据要进行存储,然后控制从存储中提取数据进行运算,然后在存储,然后输出。
概念定义:
链式存储:跳转寻找,通过地址的转变
顺序存储:顺序寻找
两种存储结构的优缺点?
链式:优点:插入和删除不需要移动,空间有效利用。
缺点:大量访问操作时不如顺序存储结构。
顺序:优点:可随机存取表中任一元素。
缺点:插入或删除操作时,需大量移动元素。合适在很少进行插入和删除运算的情况下。
数组为什么是顺序存储结构?
因为数组的作用在内存中开拓一块空间,然后把一些数据按逻辑顺序排放在数组内,这样就可以根据数组的下标直接访问到数据,而顺序存储就有这样的效果。
链式存储结构如何实现?
void EraseNode(LinkList head,int x) { //删除值域的num为x的结点
LinkList *q,*p = head; // head有头结点
while(p->next) { // 非循环单链表的尾结点指向NULL
if(p->next->num == x) {
q = p->next; // 用q记录待删除的结点
p->next = q->next; // 表链跨过欲删除的结点
free(q); // 实施删除操作
break; // 假设链表中各个数据是独立的
}
p = p->next;
}
}
代码如下:
前结点.next = 后结点 //这是关键操作。。而后结点的地址是保存在A结点中的next中的
所以,这句展开来就是:
前结点.next = A.next //搞定
为啥访问内存的数据比访问外存数据快得多:
内存:直接访问数据
外存:调用数据