c语言之单链表

来源:互联网 发布:车载手机支架推荐知乎 编辑:程序博客网 时间:2024/04/29 19:25

1.什么是链式存储结构

线性表的链式存储结构称为链表。在链表的存储中,每个结点不仅包含所存元素本身的信息,还包含元素之间逻辑关系的信息,即前驱结点包含后继结点的地址信息,这样就可以通过前驱结点中的地址信息方便地找到后继结点的位置。

2.链式存储的特点

(1)链表不支持随机访问。

(2)链表的结点的存储空间利用率较之顺序表稍低一些。

(3)链表支持存储空间的动态分配。

(4)在链表中进行插入操作无需移动元素。

3.单链表结构

typedef struct Node{int data;struct Node *next;}Node;

4.单链表实现增删查

头插法图:


实现:

#include<stdio.h>#include<stdlib.h>typedef struct Node{int data;struct Node *next;}Node;//头插法创建链表Node *createListByHead(Node *A){int length,i,x;Node *p,*s;A=(Node *)malloc(sizeof(Node));if(A ==NULL){printf("ERROR");exit(0);}A->next=NULL;p=A;scanf("%d", &length);for(i=0;i<length;i++){scanf("%d", &x);s=(Node *)malloc(sizeof(Node));if(s ==NULL){printf("ERROR");exit(0);}s->data=x;s->next=p->next;p->next=s;}return A;}//尾插法创建链表Node *createListByTail(Node *B){int length,i,x;Node *p,*q;B=(Node *)malloc(sizeof(Node));if(B==NULL){printf("ERROR");}B->next=NULL;p=B;scanf("%d",&length);for(i=0;i<length;i++){scanf("%d",&x);q=(Node *)malloc(sizeof(Node));q->data=x;p->next=q;p=p->next;}p->next=NULL;return B;}//查询输入值是否在链表中int findVal(Node *C,int x){Node *p=C->next;while(p !=NULL){if(p->data==x){return 1;}p=p->next;}return 0;}//删除单链表结点int deleteList(Node *A,int x){Node *p=A;Node *q;if(findVal(A,x)==0){return 0;}while(p !=NULL){if(p->next->data==x){q=p->next;p->next=q->next;free(q);return 1;}p=p->next;}return 0;}//打印链表所有值void printList(Node *A){Node *p=A->next;printf("打印链表结果:\n");while(p !=NULL){printf("%d ",p->data);p=p->next;}printf("\n");}void main(){Node *A,*B;int x;//B=createListByHead(A);B=createListByTail(A);printList(B);printf("删除值:\n");scanf("%d",&x);deleteList(B,x);printList(B);//printf("%d",findVal(B,x));}

结果:







0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为荣耀7i进水了不开机怎么办 华为荣耀手机进水了怎么办开不开机 华为畅享5s变砖怎么办 我的苹果7机身内存满了怎么办 小米5x拆机后屏幕翘边怎么办 苹果手机设备禁止游戏登入怎么办 苹果7plus玩游戏掉频怎么办 孕期牙套子掉了基牙烂掉了怎么办 美团绑定的信用卡过期了怎么办 苹果6s手机开不开机怎么办 换了散热硅胶后还是死机怎么办 华为畅享6s掉啦怎么办 透明塑料壳被太阳晒的发黄怎么办 新买的手机壳有味道怎么办 刚买的手机壳有异味怎么办 bjd 光油把妆蹭掉了一点怎么办 软皮套手机壳如果大了怎么办 苹果手机自带相机拍照会晃屏怎么办 苹果x手机壳拆不下来怎么办 苹果手机5c屏幕没有反应怎么办 玩穿越火线屏幕两边是黑的怎么办? 8g内存只有2g可用怎么办? 三星7e微信分身打不开怎么办? 光猫的网口1不亮怎么办 两年前的发票发现名头有错误怎么办 苹果5s手机通话声音小怎么办 华为全网通手机电信卡打不了怎么办 合约机移动违约不返话费我该怎么办 电信手机卡合约套餐要到期了怎么办 苹果6s联通4g网速慢怎么办 营业厅买到的不是全网通手机怎么办 全网通手机联通卡被禁用怎么办 红米5手机关机充电自动开机怎么办 华为平板怎么解锁密码忘了怎么办 华为荣耀手机开锁密码忘记了怎么办 畅玩7x密码忘了怎么办 过了时的手机没有刷机包怎么办? 刷了个刷机包游戏玩不了了怎么办? 华为麦芒5手机外放声音小怎么办 微信显示存储卡已拔出怎么办 储存卡已拔出微信头像不可用怎么办