粗暴,干就完了----徐晓冬似的C语言自学笔记-----实现一个链表结构
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 /*N 假定数组长度为5*/ 5 typedef struct snode 6 { 7 int data; 8 struct snode *next; 9 } SNODE; 10 11 /*第一步,添加链表头信息*/ 12 SNODE *createhead(int a[]) 13 { 14 SNODE *h,*p,*q; 15 /*q为上一节点,p为当前节点*/ 16 int i; 17 q=(SNODE *)malloc(sizeof(SNODE)); 18 h=q; 19 for(i=0;i<N;i++) 20 { 21 p=(SNODE *)malloc(sizeof(SNODE)); 22 p->data = a[i]; 23 q->next=p; 24 q=p; 25 } 26 q->next=0; 27 return h; 28 } 29 30 /*第二步打印链表中的元素*/ 31 void showstars(SNODE *h) 32 { 33 SNODE *p; 34 p=h->next; 35 while(p) 36 { 37 printf("%d 其地址为 %x\n",p->data,p); 38 p=p->next; 39 } 40 } 41 42 43 /*第三步删除/回收节点*/ 44 void revokeresource(SNODE *h) 45 { 46 SNODE *p,*q; 47 p=h->next; 48 while(p) 49 { 50 q=p->next; 51 printf("哦,no~~~%d被回收了\n",p->data); 52 free(p); 53 p=q; 54 } 55 free(h); 56 } 57 58 /*添加一个节点,目标在值为4的结点前添加一个结点,如果值为4的节点不存在,则在末尾添加一个结点*/ 59 void insert(SNODE *h,int a,int d) 60 { 61 SNODE *p,*q; 62 SNODE *s; 63 s=(SNODE *)malloc(sizeof(SNODE)); 64 s->data=d; 65 q=h;p=h->next; 66 while(p) 67 { 68 if(p->data==a) break; 69 q=p;p=p->next; 70 } 71 s->next=q->next; 72 q->next=s; 73 showstars(h); 74 } 75 76 /*删除值为targetdta的链接节点*/ 77 void collectnode(int targetdata,SNODE *h) 78 { 79 SNODE *p,*q; 80 p=h->next; 81 q=h; 82 while (p) 83 { 84 if(p->data==targetdata) 85 { 86 break; 87 } 88 q=p;p=p->next; 89 } 90 if(p) 91 { 92 q->next=p->next; 93 free(p); 94 } 95 } 96 97 void main() 98 { 99 int saiwa[N]={1,2,3,4,5}; 100 SNODE *head; 101 head=createhead(saiwa); 102 showstars(head); 103 printf("================*在数组的值4前插入节点值8=================\n"); 104 insert(head,4,8); 105 106 printf("================*回收节点4=================\n"); 107 collectnode(4,head); 108 showstars(head); 109 }
输出结果:
转载于:https://www.cnblogs.com/saintdingspage/p/11231302.html
粗暴,干就完了----徐晓冬似的C语言自学笔记-----实现一个链表结构相关推荐
- C语言入门 —— 非科班大一学生的C语言自学笔记
初入前端的北京某211大一非科班生(没错上学期还是日语生)的C语言自学笔记 本文约8k字,将介绍:编程基础 数据类型 表达式 语句与控制流 函数 数组,指针 结构体等会随着学习进度推进持续更新~ 学习 ...
- 破解root密码,简单粗暴—干就完了!!!
第一步: 启动Linux系统,在读秒阶段按'e' 进来之后就是这个页面 第二步: 用方向'下键'将光标移动到Linux这段最后 命令:空格后输入rd.break console=tty0 之后ctrl ...
- 20221103 C语言自学笔记第一天
一直以来的一个想法,终于有时间去做了,借助CSDN平台,记录C语言自学的点点滴滴,今天干了下边这些事: 1.在B站上找到郝斌老师那套经典的自学视频,将源码和PPT下载,留作备用. 2.在虚拟机中安装X ...
- 《C程序设计语言》笔记 第6章 结构
结构(structure)是一个或多个变量的集合,这些变量可能是不同的类型,为了方便处理而组织在一个名字之下.由于结构将一组相关的变量看作一个单元而不是各自独立的实体,因此结构有助于组织复杂的数据,特 ...
- 9.22 C语言自学笔记
每一个数组都要遍历 字符串的表示方法 char arr1[]={'a','98','c'};//如果没有\0表示字符串的结束,则会printf任意值 所以要手动在最后加入'\0'char arr2[] ...
- C语言自学笔记,第一天
//第一天课简单了解了下C语言的发展和标准,按照进度开始先简单了解学习阶段,然后再细分每个板块 #define _CRT_SECURE_NO_WARNINGS 1 //记得加分号!!! //出现函数提 ...
- R语言自学笔记:数据处理、数据分布及数据检验
一. 基本的数据统计处理 1. 数据的展示 对于一组数据,可以有许多统计分析的方法. (1) 基本信息 mean():求平均值 sum():求和 sd():求总体标准差--(样本-期望)/(样本数) ...
- 黑马程序员--C语言自学笔记---07预处理、进制、机器码
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1. #include指令 1)<>:表示包含的是系统的文件 2)#includ ...
- Go语言自学笔记(八)
HTTP编程: Web工作方式:通过HTTP协议 对于普通的上网过程,系统采用的操作流程:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器回去请求DNS服务器,通过DNS获取相应的域名及对应的 ...
最新文章
- mysql 8.0配置主从同步_MySQL8.0.19开启GTID主从同步CentOS8
- c语言关键字-static
- Solaris 9安装VNC
- mysql单表备份语句 +多表
- 战斗系统的伪原创工具
- 手把手带你阅读Mybatis源码(三)缓存篇
- Java float型数据判断是否相等
- JProfiler 9.1.1部署及使用
- 《浪潮之巅》读书笔记——第6章 Microsoft
- 【RLchina第四讲】Model-Based Reinforcement Learning
- 复制构造函数被调用的3种情况
- Linux上安装JDK
- 前后端分离的跨域请求问题解决
- ASP.NET Core 面试题整理
- 谈谈UG二次开发程序入口
- mysql datasource.url_DataSource配置
- javascript 删除节点
- PayPal 如何付款
- 为什么GEMM是深度学习的核心
- 一个简单的Java例程