本文目录一览

1,线性链表是干什么用的呀是数据里的逻辑结构还是存储结构我怎么

是存储结构 线性链表是具有链接存储结构的线性表,它用一组地址任意的存储单元存放线性表中的数据元素,逻辑上相邻的元素在物理上不要求也相邻,不能随机存取。

线性链表是干什么用的呀是数据里的逻辑结构还是存储结构我怎么

2,用C语言怎么建立线性链表

线性链表是一种数据结构。 使用指针在线性表的各个节点进行连接。 struct NODE int value; NODE* next; } 这种结构就是一种线性表的数据结构咯,你使用next指针指向下一个节点。

用C语言怎么建立线性链表

3,线性链表有什么作用

线性顺序表 是一个 在内存里限定了大小的表,不能合理的控制定义时候的大小会造成空间的浪费或者不足,因为在内存里它们的位置是连续的,所以可以快速的读取,修改某个元素值以及在末尾插入元素,但是要在中间插元素,就要移动大量的元素。而线性链表是动态的 ,它的大小没有限制(在内存足够的情况下,你可以一直申请新的内存结点来存放元素),它在内存里不是连续的,所以不能快速的读取,修改,但是可以动态的扩充大小,这是很牛逼,而且插入元素的时候,不用进行大量的物理内存的移动,只要顺着链找到目标,然后进行链表的插入就可以。

线性链表有什么作用

4,什么是非线性链表和线性链表举例回答好的有分送

线性表 就是ABC这样一个个数据按顺序下去的。他们的内存储存也是ABC这样一个个下去的,|A|B|C|...|。就是内存中要连续储存 线性链表 就是数据看上去是ABC这样下去的,内存里面是|B|...|C|...|A|...|这样的混乱顺序排列的,就是内存中储存位置任意。他们用节点指针连接。也就是说A数据后面还有个指针指向B数据的内存地址。 链表 顾名思义包括线性链表,还有什么循环链表,双向链表啊啥的。。 给你画个图把..链表的。(线性链表) (A,B,C,D,E) 储存地址 数据 指向地址 1 B 99 18 E NULL 28 D 18 50 A 1 99 C 28 这样的话他们储存在1.18。28.50.99.位置上,而且顺序乱来,但显示 出来却是(A,B,C,D,E)

5,线性链表就指单向链表吗双向循环链表不能说是线性链表吗

两个都是线性链表,都是从头指针开始,沿各结点的指针扫描到链表中的所有结点
线性表 就是abc这样一个个数据按顺序下去的。他们的内存储存也是abc这样一个个下去的,|a|b|c|...|。就是内存中要连续储存线性链表 就是数据看上去是abc这样下去的,内存里面是|b|...|c|...|a|...|这样的混乱顺序排列的,就是内存中储存位置任意。他们用节点指针连接。也就是说a数据后面还有个指针指向b数据的内存地址。链表 顾名思义包括线性链表,还有什么循环链表,双向链表啊啥的。。给你画个图把..链表的。(线性链表)(a,b,c,d,e)储存地址 数据 指向地址1 b 99 18 e null28 d 1850 a 199 c 28这样的话他们储存在1.18。28.50.99.位置上,而且顺序乱来,但显示出来却是(a,b,c,d,e)

6,线性链表

#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; void init(LinkList &L); //初始化链表函数 void input(LinkList &L); //建立链表函数 void insert(LinkList &L); //插入函数 void delet(LinkList &L); //删除函数 int main() { LinkList L; //头结点 init(L); input(L); insert(L); delet(L); return 0; } void init(LinkList &L) { L=(struct LNode *)malloc(sizeof(struct LNode)); if(!L) { printf("申请内存失败!"); exit(0); } L->next=NULL; } void input(LinkList &L) { LinkList p,q; int i; q=L; printf("输入:\n"); for(i=1;i<=10;i++) { p=(struct LNode *)malloc(sizeof(struct LNode)); if(!p) { printf("申请内存失败!"); exit(0); } scanf("%d",&p->data); q->next=p; p->next=NULL; q=p; } p=L->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); } void insert(LinkList &L) { int i; int e; int j; LinkList p,s; printf("输入插入结点的位置 数据:\n"); scanf("%d%d",&i,&e); p=L;j=0; while(p&&j<i-1) {p=p->next;j++;} //查找结点 if(!p||j>i-1) exit(0); s=(struct LNode *)malloc(sizeof(struct LNode)); if(!s) { printf("申请内存失败!"); exit(0); } s->data=e; s->next=p->next; p->next=s; p=L->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); } void delet(LinkList &L) { int i; int j; LinkList p,q; printf("输入删除结点的位置:\n"); scanf("%d",&i); p=L;j=0; while(p->next&&j<i-1) {p=p->next;j++;} if(!(p->next)||j>i-1) exit(0); q=p->next; p->next=q->next; free(q); p=L->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); }

文章TAG:线性  链表  干什么  什么  线性链表  
下一篇