TUhjnbcbe - 2023/10/11 20:06:00
线性结构:最简单的线性结构就是线性表(1)特点a1前驱a2后继a31.a1只有后继2.a4只有前驱3.其它元素一定是一个前驱一个后继4.逻辑上和物理上都相邻(2)类型:表、栈、队列(3)方法:逻辑结构、存储结构、操作(4)线性表:是一种线性结构,也是逻辑结构存储结构-顺序存储-操作链式结构-单向、双向、循环-操作(5)不同操作:存储结构-顺序表(连续)1.定义顺序表:数组2.建表、查询、增加、删除、修改、输出(6)链式存储结构(链表):不必连续有头、有尾、成链状,叫链表。定义存储结构、定义链表Structnode{Intdata;//数据域Structnode*next;//指针域指针指向自身};(7)链表操作1.创建链表前插:栈后插:队2.链表查询:序号数据链表查询必须顺next往下查询3.链表插入:1p指向a3前面的结点2先连s-next=p-next后断p-next=s4.链表的删除P-next=p-next-next或:q=p-next;p-next=q-next;free(q);释放空间5.链表逆序6.链表合并多项式合并将次数低的插入次数高的,数据域进行相加。7.链表输出引入一个指针p,while(p!=NULL){Coutp-data;P=p-next;//往下移;}(8)循环链表每个结点都可以找到,最后一个结点next指针不为0,直接指向头指针。(9)双向链表每个结点中都有前驱和后继的指向,缺点:操作比较麻烦,空间浪费。双向链表插入方法:先连:p-prior=current;p-next=current-next;后断:current-next=p;p-next-prior=p;小结:1.带头结点链表,p的定义应该是头指针指向的后一个;不带头结点链表则p定义头指针。2.顺序表中第一个元素的存储地址是,每个元素长度为2,则第5个元素地址是:。+(n-1)*2;编号从0开始。3.链接存储结构所占存储结构所占空间:分两部分,一部分存放结点值,另一部分存放结点间关系的指针。4.线性表L在什么情况下适用于链式结构实现:需不断对L进行删除插入。
TUhjnbcbe - 2023/10/11 20:06:00
线性结构:最简单的线性结构就是线性表(1)特点a1前驱a2后继a31.a1只有后继2.a4只有前驱3.其它元素一定是一个前驱一个后继4.逻辑上和物理上都相邻(2)类型:表、栈、队列(3)方法:逻辑结构、存储结构、操作(4)线性表:是一种线性结构,也是逻辑结构存储结构-顺序存储-操作链式结构-单向、双向、循环-操作(5)不同操作:存储结构-顺序表(连续)1.定义顺序表:数组2.建表、查询、增加、删除、修改、输出(6)链式存储结构(链表):不必连续有头、有尾、成链状,叫链表。定义存储结构、定义链表Structnode{Intdata;//数据域Structnode*next;//指针域指针指向自身};(7)链表操作1.创建链表前插:栈后插:队2.链表查询:序号数据链表查询必须顺next往下查询3.链表插入:1p指向a3前面的结点2先连s-next=p-next后断p-next=s4.链表的删除P-next=p-next-next或:q=p-next;p-next=q-next;free(q);释放空间5.链表逆序6.链表合并多项式合并将次数低的插入次数高的,数据域进行相加。7.链表输出引入一个指针p,while(p!=NULL){Coutp-data;P=p-next;//往下移;}(8)循环链表每个结点都可以找到,最后一个结点next指针不为0,直接指向头指针。(9)双向链表每个结点中都有前驱和后继的指向,缺点:操作比较麻烦,空间浪费。双向链表插入方法:先连:p-prior=current;p-next=current-next;后断:current-next=p;p-next-prior=p;小结:1.带头结点链表,p的定义应该是头指针指向的后一个;不带头结点链表则p定义头指针。2.顺序表中第一个元素的存储地址是,每个元素长度为2,则第5个元素地址是:。+(n-1)*2;编号从0开始。3.链接存储结构所占存储结构所占空间:分两部分,一部分存放结点值,另一部分存放结点间关系的指针。4.线性表L在什么情况下适用于链式结构实现:需不断对L进行删除插入。