| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 顺序表的基本操作——初始化表 -> 正文阅读 |
|
[数据结构与算法]顺序表的基本操作——初始化表 |
为避免表中留有脏数据,首先要对表进行初始化,使之后创建表内数据时,不会受到影响。 #include<stdio.h> #define?MaxSize 10? ? /*此处创建的是静态链表,此句默认了表的最大数据长度10,后面对此表的长度最大长度不能进行修改;若是动态链表则还可以通过创建指针进行修改*/ tppedef struct{int data[MaxSize];? ? ? ? ? ? ? ? ? ? ? ?/*静态链表采用数组存储并调用,所以用*/ ? ? ? ? ? ? ? ? ? ? ? ?int length;}sqList;? ? ? ? ? ? ? ? ? ? ? ? /*data[MaxSize]*/ void InitList(sqList &L){for(int i=0; i<=MaxSize; i++) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? L.data[i]=0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? L.length=0;}? ? ? ? /*此处在遍历顺序表,并赋值0,清理表中可能存留的脏数据,且此时表的长度为0;*/ int main(){sqList L; ? ? ? ? ? ? ? ? InitList(L); ? ? ? ? ? ? ? ? return 0;} 与此相对比的动态数据表: #include<stdio.h> #define InitSize 10? ? ? ? ? ? ? ? /*此处于静态链表一样,需调用#define InitList10来默认表的长度,不同是的,动态链表可以修改表长;*/ typedef struct {int *data;? ? ? ? ? ? ? ? ? ? ? ? /*动态链表采用指针*/ ? ? ? ? ? ? ? ? ? ? ? ? int MaxSize; ? ? ? ? ? ? ? ? ? ? ? ? int length;}sqList; void InitList(sqList &L){ L.data=(int *)malloc(InitSize*sizeof(int)); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? L.MaxSize =InitSize;? ? ? ? ? ? ? ? ? ? ?/*清除脏数据无需像静态链表*/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? L.length =0;}? ? ? ?/*?一样,完整的遍历数组,只需将L.length =0;*/ void IncreaseList(sqList &L, int len){? ? ? ? ? ? ? ?int *p=L.data; ?/*有malloc就必有free;?? ? ? ? ? ? ? ? ? ??? ? ??????????????L.data=(int *)malloc((L.length?+len)*sizeof(int)); ?动态链表增加链表长度时,? ? ? ? ?? ? ??????????????for(int i=0; i<L.length; i++) ?需要再创建一个指针,将*p指向? ? ? ? ? ????????????????L.data[i]=p[i];? ? ? ? *data,之后改变L.data的长度,? ? ? ? ????????????????L.MaxSize=L.MaxSize +len; 再进行遍历,并将指针p的值一一传回L.data*/? ? free(p);} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int main(){sqList L; ? ? ? ? ? ? ? ? InitList(L); ? ? ? ? ? ? ? ? IncreaseList(L,5); ? ? ? ? ? ? ? ? return 0;} 以上是静态链表和动态俩表在初始化表和增加表长的区别。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:34:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |