单链表的创建,删除,插入以及打印。
来源:互联网 发布:淘宝新店铺如何做活 编辑:程序博客网 时间:2024/06/05 04:36
今天新学到了单链表的创建,打印,删除以及插入,自己感觉可以写下来纪念一下,是不是拿出来理解理解,还是很有好处的。
#include "stdio.h"
#include <malloc.h>
struct student
{
long num;
float score;
struct student * next;
};
int n=0;
//创建链表
struct student * create(void)
{
struct student * head;
struct student * p;
struct student * tail;
head=NULL;
p=(struct student *)malloc(sizeof(struct student));
scanf("%ld %f", &p->num, &p->score);
while(p->num != 0)
{
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
n++;
p=(struct student *)malloc(sizeof(struct student));
scanf("%ld %f", &p->num, &p->score);
}
tail->next=NULL;
return head;
}
//打印链表
void print(struct student * head)
{
struct student * p=head;
while(p != NULL)
{
printf("node[num=%ld,score=%f]\n", p->num, p->score);
p=p->next;
}
}
//删除链表中某个指定的节点(包括数据)
struct student * del(struct student * head, long num)
{
struct student * p1, * p2;
if(head == NULL)
{
return head;
}
else
{
p1=head;
p2=NULL;
while(p1 != NULL &&p1->num != num )
{
p2=p1;
p1=p1->next;
}
if(p1!=NULL)
{
if(p1 == head)
head=p1->next;
else
p2->next=p1->next;
free(p1);
}
}
return head;
}
//插入新节点
struct student *insert(struct student *head,long num,float score)
{
struct student *p=(struct student *)malloc(sizeof(struct student));
p->num=num;
p->score=score;
if(head==NULL)
{
head=p;
p->next=NULL;
}
else
{
//头插法
p->next=head;
head=p;
}
return head;
}
int main(int argc, char* argv[])
{
struct student * head=create();
printf("before delete\n");
print(head);
head=del(head, 1);
printf("after delete\n");
print(head);
printf("after insert\n");
head=insert(head,5,3.6);
print(head);
return 0;
}
- 单链表的创建,删除,插入以及打印。
- 单链表的创建,插入,删除以及逆序
- 单链表的创建,删除,插入,以及合并
- 单链表的创建、测长、打印、插入和删除
- C++单链表的操作(创建,删除,打印,遍历,插入)
- 实现单链表的创建、打印、插入、删除、逆置
- 数据结构:单链表(一)的创建、插入、删除、遍历,打印
- 单链表的常用操作,包括单链表的创建、插入、删除、排序、逆置以及打印输出等
- 单链表详解(创建,插入,删除,打印)
- 实现单链表创建、插入、删除、打印功能
- 单链表创建插入删除打印反转
- 单链表的创建,插入,删除以及就地逆转
- C++单链表的创建插入删除以及逆序操作
- 单链表的创建、插入、删除、排序以及逆置
- 单链表的创建、插入、删除、销毁以及查找中间结点
- 链表的创建、插入以及删除
- 二叉排序树的构建、插入、删除以及二叉树的打印
- 单链表的创建,删除,插入
- 讲师修改代码
- 新一代的nRF52832加入了很多新的功能。比如Cortex-M4F的内核,它能够更强大的运算能力以及浮点运算的技术
- 合并石子 题解
- mysql 表的自我复制或mysql批量制造数据
- Python
- 单链表的创建,删除,插入以及打印。
- 第一波--自己都不知道在写啥
- RFID 电动二轮自行车的防盗系统—标签
- java 创建对象模式 (五种)
- JavaScript开发工具简明历史
- java String字符串与Date的相互转换
- Could not load oracle/sql/converter_xcharset/lx20354.glb
- centOS 配置ftp全过程 解决ftp用户登录拒绝
- 用户unionID获取策略调整,请开发者注意更新