指针——可能我学的还只是c++的皮毛
单点时限: 2.0 sec
内存限制: 256 MB
实现线性链表的插入与删除操作
只需完成给定函数的定义。
NODE* insertLinklist(NODE* head, int tar, int val) {
// TODO
}
NODE* deleteLinklist(NODE* head, int tar) {
// TODO
}
其中
NODE表示链表的结构体,定义如下
typedef struct node
{
int data; //存储数据
struct node* next; //指向下一个节点的指针
} NODE;
head指向链表的头结点,如果链表为空,head为NULL
显然,为了完成该链表维护工作,你需要实现上述两个辅助函数
插入操作中:
tar,val表示将存放新值val的节点插入到值为tar的节点之后
(保证当链表不为空时,值为tar的节点一定在链表中,若有多个节点存放的值都为tar,则插入到第一个之后,若链表为空,则无视tar值,将val插入到
head后面,即将head指向这个新的节点)
删除操作中:
tar表示删除存放值为tar的节点(若有多个节点存放的值是tar,则删除第一个)
如果链表为空则忽略当前操作
提示
只能使用C或者C++提交。
对于C/C++,判题程序类似,如下:
#include <stdio.h>
#include <stdlib.h> typedef struct node
{
int data;
struct node* next;
} NODE; NODE* insertLinklist(NODE* head, int tar, int val);
NODE* deleteLinklist(NODE* head, int tar); /* 你的代码将会被嵌入在这个位置 */ int main()
{
/* 输入及其他处理,细节隐藏不表 */ NODE* head = createLinklist(/* 创建链表,细节隐藏不表 */); for (/* 若干操作,细节隐藏不表 */)
if(/* 判断插入还是删除,细节隐藏不表 */)
head = insertLinklist();
else
head = deleteLinklist(); /* 后续判题,细节隐藏不表 */ return 0;
} 虽说这只是一道不考的水题,但是弄得我头都大了;
NODE* insertLinklist(NODE* head, int tar, int val)
{
if(head==NULL)//空
{
NODE* p=(NODE*)malloc(sizeof(NODE));
p->data=val;
p->next=NULL;
head=p;
}
else
{
NODE* p=head;
NODE* pnew=(NODE*)malloc(sizeof(NODE));//动态申请指针
while(p->data!=tar)
{
p=p->next;
}
pnew->data=val;
pnew->next=p->next;
p->next=pnew;
} return head;
} NODE* deleteLinklist(NODE* head, int tar)
{
if(head==NULL) return head;
if(head->data==tar)
{
head=head->next;
return head;
}
NODE* last=head;
NODE* now=head->next;
while(now->data!=tar)
{
now=now->next;
last=last->next;
}
last->next=now->next;
return head;
}
指针还是用->吧,不然会CE;
NODE* p和NODE *p等价,看习惯;
还有要注意指针=指针,类型要看好;
如果要找到一个变量的地址,用int *p=&a;
&取地址
指针——可能我学的还只是c++的皮毛的更多相关文章
- Android开发音视频方向学习路线及资源分享,学完还怕什么互联网寒冬?
接触Android音视频这一块已经有一段时间了,跟普通的应用层开发相比,的确更花费精力.期间为了学习音视频的录制,编码,处理也看过大大小小的几十个项目.总体感觉就是知识比较零散,对刚入门的朋友比较不友 ...
- 学数据库还不会Select,SQL Select详解,单表查询完全解析?
查询操作是SQL语言中很重要的操作,我们今天就来详细的学习一下. 一.数据查询的语句格式 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式> .. ...
- C语言指针专题——指针难学的4点原因
前一篇跟大家聊了聊指针的概念,可是就算了解了指针是什么,为什么依然感觉难学?我试着从几个点切入,聊聊指针难学之处. 文末会给大家推荐几本书,有需要的朋友可以看看! 难点1. 讨厌的星号 定义指针变量p ...
- iOS开发系列--C语言之指针
概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移越来越模糊,感觉指针难以掌握,本文通过简单的例子试图将指针解释清楚,今天的重点有几个方面: 什么是指针 ...
- 黑马程序员_ C语言基础之指针(三)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...
- (转)c指针
转自:http://www.cnblogs.com/wchhuangya/archive/2009/12/24/1631121.html 这两天开始搞BREW了,用的是C的语法.上学时学过的C都还给学 ...
- 听翁恺老师mooc笔记(6)--指针运算
指针值加1就是将指针值加上sizeof(指针所指变量的类型) 1+1=2,那么指针加1是加上了1这个数字吗?试一下,在代码中定义了char数组,char也是整数,数组名是ac,ac中有10个元素,0- ...
- C第九次博客作业--指针
一.PTA实验作业 题目1:两个4位正整数的后两位互换 1. 本题PTA提交列 2. 设计思路 3.代码截图 本题调试过程碰到问题及PTA提交列表情况说明 刚开始想到的交换是令t=a;a=b;b=t这 ...
- 深入了解C指针
前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级 ...
随机推荐
- hdu 6216 A Cubic number and A Cubic Number
题意:给定一个素数,判定它是不是两个立方数之差. 题解:对于a^3+b^3=(a-b)(a^2-a*b+b^2),而一个素数的因子只有1和其本身,在加上(a^2-a*b+b^2)一定是大于1的,所以只 ...
- robot framework 如何获取隐藏元素的文本,以及可见元素的文本
1.下图是获取可见元素的文本内容,运行后得到:${B_name}=公告管理:假设公告管理不可见,那么${B_name}=‘’(为空)
- 华为Python面试题
最近在网上偶然看到此题: 有两个序列a,b,大小都为n,序列元素的值任意整形数,无序: 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小 经过一番思索,我试着用穷举法 ...
- vue、react中循环遍历为什么会有key,key有什么作用?
先讲一下,vue和react都是在操作虚拟dom,并且根据diff算法进行新旧dom对比,从而更新dom,以vue举例: vue官方文档中写到有 key 的特殊属性主要用在 Vue 的虚拟 DOM 算 ...
- Go微服务 grpc的简单使用
作者:薇文文链接:https://www.jianshu.com/p/20ed82218163来源:简书 准备工作 先安装Protobuf 编译器 protoc,下载地址:https://github ...
- Xmind ZEN破解版来袭:如何去除水印
Xmind ZEN是一款十分优雅地思维导图软件,但是找不到其破解版,在导出图片时就会携带上水印. image-20190110110013642.png 当然,土豪请(点击这里关闭). image-2 ...
- laravel 的安装与配置
1.工作环境 php 7.0+ .MySQL5.1+ 这里可以用开发环境包一键安装: 自己用的是wamp(windows)http://www.wampserver.com/en/ linux系统和m ...
- xtrabackup数据库备份工具
下来我来介绍一下更强大的备份工具:xtrabackup xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速 ...
- CSS复合选择器和div盒子模型
一.复合选择器(3种) 1.交集复合选择器 特点:由2个选择器组成,其中第一个必须是标签选择器,第二个是类或id选择器.两个选择器之间没有空格(有空格属于层级选择器) <h3 class=&qu ...
- SQL Server 对接MySQL 数据库
1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql.com/downloads/connector/odbc/ 2.安装好后,在管理工具- ...