昆明森贤网站建设,陕西省建设厅网站,wordpress 目录 伪静态,哪些网站可以接工程做链表总结
链表总结与进阶 抽象数据类型#xff08;ADT abstract data type#xff09;与抽象数据接口#xff08;ADI abstract data Interface#xff09; 链表实际上就是对于结构体、结构体指针和结构体内可以包含指向同类型的结构体指针不可以包含指向同类型的结构体的应…链表总结
链表总结与进阶 抽象数据类型ADT abstract data type与抽象数据接口ADI abstract data Interface 链表实际上就是对于结构体、结构体指针和结构体内可以包含指向同类型的结构体指针不可以包含指向同类型的结构体的应用 链表首先有一个指向同类型结构体指针的头指针头指针之后是结构体节点每个结构体节点内包含了指向同类型结构体的指针用于指向下一个结构体节点。 实际使用时链表的每个链节叫做节点node每个节点包括携带信息的结构体Item和指向下一个节点node结构体的结构体指针。 就不像初始实现的链表那样而是将数据和指针分开。
举例 struct people { char name[size_len]; int age; } typedef struct people Item; 定义Item的好处接口固定数据结构改变后只需要重新定义Item的结构体内部的内容不必更改其他的接口定义。
定义链表节点 其他节点 typedef struct node { Item item; struct node* next; }Node; 头节点 头节点要再做一层封装List专门用于定义头节点指针指向节点的结构体指针。 typedef Node* List;
List people_head;
如果想要头节点包含更多的信息可以进一步定义头节点为 typedef struct list { Node* head; int size; }List;
头指针的初始化 方法一: people_head NULL;//指针初始化为NULL 方法二 people_head.head NULL; people_head.size 0;
数据隐藏
定义一个初始化函数将具体的初始化隐藏起来InitializeList() 使用该程序的程序员不必知道初始化的细节只需要调用初始化的API即可。数据隐藏是一种从变成的更高层次隐藏数据表示的细节的艺术。 /* 操作 初始化链表*/ /* 前提条件头指针指向一个链表*/ /* 后置条件执行结果该链表初始化为空*/
C语言把所有类型和函数的信息集成为一个软件包的方法使用静态库把类型定义和函数原型放在头文件中标注好前提条件、后置条件的注释
结构体成员访问 结构体指针的成员访问两种方法