第二章 线性表 2.1线性表的定义

 现在开始在这个博客写文章了,马上要上大二了,可什么也没有学会,以后要多学习,多写日记,多来这里看看。觉得这样可以激励一下自己,督促自己。呵呵。。。
我写的文章烂,都自己瞎想的,有错希望大虾批评指正。^_^

第一章 绪论
都是些概念,俺看了就忘。就记住两点(不怕,俺还不用考试呢):
1,数据结构是带结构的数据
2,数据类型-数据结构和定义在这个数据结构上的一组操作的总称。

第二章 线性表
2.1线性表的定义
按着书本上的例子,动手敲了一下代码,并运行了。后来突然觉得一句话很对,那句是:程序=数据结构+算法

书上的代码都好理解,俺就不说了。说说俺的理解。
俺在调试的时候直接吧想法写在代码上了。

定义SqList结构,在程序运行中它只占了sizeof(ElemType)+sizeof(int)+sizeof(int)个字节,也就是说它不存
储数量变化的数据。只是通过成员lenth,listsize标识了一下元素集合的信息,用*elem进行了类似于C语言中下标[]的用法。
这些放到源代码中是很好理解的。别只看看书,动动手吧。

//线性表的动态分配顺序存储结构
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 2
typedef int ElemType;
struct SqList //相当于数组的下标,但是含有数组的长度和容量; 只记录了数组的信息,没有数据
{
 ElemType *elem;  //下标0,*elem++进行移动
 int length;     //数组长度,为相对常量
 int listsize;  //指示数组所占内存,为相对常量(相对常量,偶自创,本质为变量,一般可看作变量)
};       //内存块中,指针是按ElemType类型移动的

int a[10]; 定义了一个0-9的整数数组。
对应到SqList结构中,length=10,listsize=10*sizeof(int),*elem为[i](i=0)
想到点东西,说说
int *p;
a=p[i];
有人说指针用上小标号的意思是p+i,我做了做,编译出错,不知真么回事。


写的挺杂,可别嫌乱,再说一点
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
malloc分配一块内存,大小为LIST_INIT_SIZE*sizeof(ElemType),malloc的返回值为空指针,
经过(ElemType*)强制为ElemType*型。本来申请了一块空旷的内存,经过(),它就被分
成大小相等的几块了,这时L.elem+1就有意义了,它指向了第二块内存。

到现在是不是觉得SqList结构和数组很像啊!不过SqList是动态的。

                                                                                2008年7月16日

                                                                                        unikingest

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值