谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)
#include<stdio.h>
#include<stdlib.h>
#define N sizeof(link)
typedef struct stu
{
struct stu *next;
int date;
}link;
void print(link*head)/*打印链表数据*/
{
link *p;
p=head->next;
if(p)
do
{
printf("%d\t",p->date);
p=p->next;
}while(p);
printf("\n");
}
link *creat(void)/*创建链表*/
{
link *head,*p,*s;
head=(link*)malloc(N);
head->next=p=(link*)malloc(N);
printf("请输入数据输入‘0’结束创建链表:\n");
scanf("%d",&p->date);
while(p->date)
{
p->next=(link*)malloc(N);
s=p;
p=p->next;
printf("请输入数据输入‘0’结束创建链表:\n");
scanf("%d",&p->date);
}
s->next=NULL;
return(head);
}
link *del(link *head,int m)/*删除指定数据节点*/
{
link *p,*last,*s;
last=head;
p=head->next;
while(p)
{
if(p->date==m)
{
last->next=p->next;
s=p;
p=p->next;
free(s);
}
else {
last=last->next;
p=p->next;
}
}
return head;
}
link *insert(link *head,int m)/*在m数据结点后插入结点并输入数据*/
{
link *p,*pnew;
for(p=head->next;p;p=p->next)
if(p->date==m)
{
pnew=(link*)malloc(N);
printf("请输入插入的数据:\n");
scanf("%d",&pnew->date);
pnew->next=p->next;
p->next=pnew;
}
printf("成功插入结点数据!\n");
return(head);
}
int main()
{
link*head;
int n;
head=creat();
printf("打印未处理的数据:\n");
print(head);
printf("\n输入要删除的数据结点:\n");
scanf("%d",&n);
printf("打印删除后的链表数据:\n");
print(del(head,n));
printf("\n输入在哪个链表数据后插入结点:\n");
scanf("%d",&n);
printf("打印插入后的链表数据:\n");
print(insert(head,n));
return ;
}
测试数据:
请输入数据输入‘0’结束创建链表:
1
请输入数据输入‘0’结束创建链表:
2
请输入数据输入‘0’结束创建链表:
3
请输入数据输入‘0’结束创建链表:
4
请输入数据输入‘0’结束创建链表:
5
请输入数据输入‘0’结束创建链表:
6
请输入数据输入‘0’结束创建链表:
7
请输入数据输入‘0’结束创建链表:
8
请输入数据输入‘0’结束创建链表:
9
请输入数据输入‘0’结束创建链表:
10
请输入数据输入‘0’结束创建链表:
0
打印未处理的数据:
1 2 3 4 5 6 7 8 9 10 输入要删除的数据结点:
7
打印删除后的链表数据:
1 2 3 4 5 6 8 9 10 输入在哪个链表数据后插入结点:
6
打印插入后的链表数据:
请输入插入的数据:
666666
成功插入结点数据!
1 2 3 4 5 6 666666 8 9 10
Press any key to continue
谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)的更多相关文章
- 谭浩强第四版第九章课后习题12>>>建立一个链表,每个节点包括:学号、姓名、性别、年龄。输入一个年龄,若链表 中的结点所包含的年龄等于此年龄,则删除此结点。
#include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct lin { struct ...
- NEUQ1051: 谭浩强C语言(第三版)习题6.7
//C代码简直难看到家,求大神知道如何写出复用性好的,维护性强的代码... //格式错误了好几次,最后发现是are和数字之间多了个空格......本来一直以为是最后的换行多了,费劲搞掉了. #incl ...
- NEUQ1055谭浩强C语言(第三版)习题6.11
//迭代公式不是很理解,写出来算了.. #include <stdio.h> #include <math.h> int main() { double x0,x1; int ...
- NEUQ1038: 谭浩强C语言(第三版)习题4.8
之前没做对的一道题,今天集中清理一下. //------------------- 很水的题,主要是 %.2lf 不能四舍五入,需要仅保留两位小数,用了丑陋的强制类型转换... //--------- ...
- 读谭浩强C语言数据结构有感(1)
1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...
- 谭浩强 c++程序设计第一章课后习题 第10题
#include <iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个整数类型的数 ...
- 谭浩强 c++程序设计第一章课后习题 第7题
#include <iostream> using namespace std; int main() { int a,b,c; int f(int x,int y,int z);//这是 ...
- java编程思想第四版第九章总结
1. 策略设计模式 参考这篇文章:http://blog.csdn.net/chenjie19891104/article/details/6396458 讲的很清楚,策略设计模式.并且举了一个例子, ...
- java编程思想第四版第九章习题
第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...
随机推荐
- 详解Javaweb中常见漏洞的防御
上一篇给大家介绍了SpringMVC中常见的客户端数据输入点,这一篇给大家讲解下java中常见漏洞的防御方法. 0x01.sql注入 下面我们就用利用SpringMVC自带的数据库操作类jdbcTem ...
- #学习笔记#e2e学习使用(二)
前言: <#学习笔记#e2e学习使用(一)>主要记录了Vue项目的创建到e2e环境的搭建,以及期间遇到的各种问题和解决方法.本文建立在基础测试环境搭建完毕能正确运行的情况下,编写测试代码, ...
- traceroute工具
traceroute是类Unix的命令工具,用于测试到网络上某台主机host的跳数以及延时情况.其运行原理是,通过发送指定TTL的UDP包给目的主机host,通过将TTL逐渐增大,就能收到一些ICMP ...
- Python语言程序设计基础(2)—— Python程序实例解析
温度转换 def tempConvert(ValueStr): if ValueStr[-1] in ['F','f']: ans = (eval(ValueStr[0:-1]) - 32)/1.8 ...
- SpringMVC学习记录一——入门介绍和入门程序
1 springmvc框架 1.1 什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. spr ...
- 深入浅出C指针
http://bbs.9ria.com/blog-164422-18039.html 初学者在学习C语言时,通常会遇到两个瓶颈,一个是“递归”,一个是“指针”.大学老师在讲述这两个知识点时通常都是照本 ...
- 我想写一个前端开发工具(一):在npm发布模块
有必要说说我为什么要开始写这个,正文从下面的第一条开始 我最近忙于公司的项目,一直没有抽出时间来写文章.本来想每个月写一片文章,保质保量,无奈上个月没有坚持. 这段时间有点忙,主要是由于公司业务调整, ...
- Visual Studio 2015 Tools for Unity安装
https://blogs.msdn.microsoft.com/visualstudio/tag/visual-studio-tools-for-unity/ 下载对应的VS版本 里边可以找到下载地 ...
- svg了解一下
工作需求,要用svg动态生成思维导图.我的天,这是我的短板. 但是没办法,需求在这,硬着头皮上吧. 本来想偷懒,看看网上有没有现成的可以copy的,逛了一圈发现没有. 这个过程种发现了D3.Three ...
- datagrid中设置编辑,删除列是否可以访问
foreach (RepeaterItem Item in rpt_Result.Items) { LinkButton edit = (LinkButton)Item.FindControl(&qu ...