指针——可能我学的还只是c++的皮毛

指针——可能我学的还只是c++的皮毛,第1张

概述C. 线性链表的插入与删除 单点时限: 2.0 sec 内存限制: 256 MB 实现线性链表的插入与删除 *** 作 只需完成给定函数的定义。 NODE* insertLinklist(NODE* head, int tar, int val) { // TODO } NODE* deleteLinklist(NODE* head, int tar) { // TODO } 其中 NODE表示链表的结构 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指向链表的头结点,如果链表为空,headNulL

显然,为了完成该链表维护工作,你需要实现上述两个辅助函数

插入 *** 作中:

tarval表示将存放新值val的节点插入到值为@H_301_170@tar的节点之后

(保证当链表不为空时,值为@H_301_170@tar的节点一定在链表中,若有多个节点存放的值都为@H_301_170@tar,则插入到第一个之后,若链表为空,则无视@H_301_170@tar值,将val插入到head后面,即将head指向这个新的节点)

删除 *** 作中:

tar表示删除存放值为@H_301_170@tar的节点(若有多个节点存放的值是@H_301_170@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 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++的皮毛全部内容,希望文章能够帮你解决指针——可能我学的还只是c++的皮毛所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存