数组:顺序存储
//类型相同,
连续存储
,随机访问
优点:紧密排列,没有碎片 ,查询方便
(卫星,导航,抓拍存储结构)
缺点:插入数据效率低下,删改困难
链表:链式存储
//
陆续存储
,顺序访问,递归指针
”next”
优点:增删改方便
列表创建
//*********************
1.创建结点
p2node_t headp = NULL;
p2node_t curp = NULL;
p2node_t newp = NULL;
p2node_t prep = NULL;
int i = 0;
for(i=0;i<3;i++){
newp = (p2node_t)malloc(sizeof(node_t));
if(newp == NULL){
perror(“内存不足”);
exit(EXIT_FAILURE);
}
2.填充结点
newp->data = (i+1)*10; //数据区域的填充
newp->next = NULL;
//指针区域的初始填充
3.绑定结点
if(i == 0){
headp = newp;
}else{
prep->next = newp;
}
4.结点步进
prep = newp;
}
链表测长
***********************************************
int listlen(p2node_t headp)
{
p2node_t p2tmp = NULL;
p2tmp = headp;
int i = 0;
for(i=0;p2tmp!=NULL;p2tmp=p2tmp->next){
continue;
}
return i;
}
尾插法建链表
************************************************
高地址 | | 命令行参数和环境变量 |
| 栈空间 | |
| | |
| | |
| 动态链接库 | |
| 堆空间 | |
| | |
| | |
| 静态变量空间 | |
| 未初始化的数据 | 由exec赋初值 |
| 初始化的数据 | exec从程序文件中读到 |
| 正文 | |
| ||
低地址 |