链表
黄色的拉拉6
落魄富二代被迫入行嵌入式目前水平:少儿编程
展开
-
24.C语言实战项目(链表、指针、结构体的综合运用):学生成绩管理系统
C语言实战项目:学生成绩管理系统学生结构体班级结构体创建学生链表创建班级链表打印出每一个学生的各科成绩、总分、平均分找出总分最高分学生的班级、学号、分数找出总分最低分学生的班级、学号、分数学生结构体struct Student{ int classNum; int xuehao; int Chinese; int maths; int English; float sum; float average; struct Student* next; };班级结构体stru原创 2021-08-11 01:37:18 · 438 阅读 · 0 评论 -
23.动态链表的创建——尾插法
动态链表的创建——尾插法核心代码核心代码struct Test* insertFromBehind(struct Test* phead,struct Test* new){ struct Test* p=phead; if(phead==NULL) { phead=new; return phead } while(p->next!=NULL) { p=p->next; } p->next=new; return phead;}原创 2021-07-31 23:40:30 · 121 阅读 · 1 评论 -
22.动态链表的创建——头插法
动态链表的创建——头插法核心代码核心代码struct Test* insertFromHead(struct Test* phead){ struct Test* new=NULL; while(1) { new=(struct Test*)malloc(sizeof(struct Test)); printf("Please input node:\n"); scanf("%d",&(new->data)) if(phead==NULL) { phe原创 2021-07-28 01:18:57 · 132 阅读 · 0 评论 -
21.链表的更改
链表的更改核心代码示例核心代码struct Test* gaiNode(struct Test* phead,int data,int newdata){ struct Test* p=NULL; p=phead; while(p!=NULL) { if(p->data==data) { p->data=newdata; return phead; } p=p->next; } return phead;}示例将链表中的 8 改成原创 2021-07-27 13:26:43 · 105 阅读 · 0 评论 -
20.链表节点的删除
链表节点的删除核心思路核心代码核心思路核心代码#include <stdio.h>struct Test{ int data; struct Test* next;};void printLink(struct Test* phead){ struct Test* point=phead; while(point!=NULL) { printf("%d ",point->data); point=point->next; } pu原创 2021-07-25 00:12:47 · 73 阅读 · 0 评论 -
19.链表插入——头插法
链表插入——头插法核心思想核心代码头插法示例核心思想当目标节点为第一个节点时当目标节点为非首节点时核心代码当目标节点为第一个节点时if(p->data==data){ new->next=p; return new;}当目标节点为非首节点时while(p->next!=NULL){ if(p->next->data==data) { new->next=p->next; p->next=new;原创 2021-07-19 10:37:08 · 262 阅读 · 0 评论 -
18.链表插入——尾插法
链表插入——尾插法核心思想核心代码注意示例核心思想找到要插到后方的节点 new->next = p->next p->next = new 核心代码void insertBehind(struct Test* phead,int data,struct Test* new){ struct Test* p; p=phead; while(p!=NULL) { if(p->data==data) { new->next=p原创 2021-07-09 17:31:04 · 1393 阅读 · 0 评论 -
17.计算链表节点个数 && 链表的查找
计算链表节点个数 && 链表的查找计算链表节点个数链表的查找示例计算链表节点个数int totalNodeNum(struct Test* phead){ int cnt=0; while(phead!=NULL) { cnt++; phead=phead->next; } return cnt;}链表的查找int searchNode(struct Test* phead,int data){ while(phead!=NULL) { i原创 2021-07-09 10:16:32 · 798 阅读 · 1 评论 -
16.链表静态添加和动态遍历
链表静态添加和动态遍历链表静态添加链表动态遍历示例链表静态添加直接在链表尾部加struct Text* tn={x,NULL};tn.next=&t(n+1)链表动态遍历void printLink(struct Test* phead){ struct Test* point=phead; while(point!=NULL) { printf("%d ",point->data); point=point->next; } putchar('\原创 2021-06-30 21:38:16 · 117 阅读 · 0 评论 -
15.链表是个好东西!good job!
链表的引入链表定义链表特点单链表的引入示例和数组相同,链表也是一种线性表结构。作为非常基础、非常常用的两种数据结构,数组和链表经常被拿来比较。链表定义链表是一种线性表数据结构。从底层存储结构上看,链表不需要一整块连续的存储空间,而是通过“指针”将一组零散的内存块串联起来使用。链表中的每个内存块被称为链表的“结点”,每个结点除了要存储数据外,还需要记录上(下)一个结点的地址。链表特点插入、删除数据效率高,只需要考虑相邻结点的指针改变,不需要搬移数据,时间复杂度是 O(1)。原创 2021-06-30 11:20:58 · 87 阅读 · 0 评论