链表删除值为x的节点java,【我的漫漫考研路】数据结构·删除单链表中所有值为X的节点...

正文之前

熟悉我的人都知道,我是不屑于说废话的, 所以,就不废话了。另外,本系列估计快要完了,因为我估计要去读博士了,计算机的哟,以后的文章就不倾向于小白文了,能看懂的受众估计也不多,多半简书就成了科普和流水账,感情戏的首发地点,至于高深的文章应该CSDN,简书,公众号,掘金,博客园等地方都会发一遍~喜欢我的小伙伴们可以随便关注一个,不过简书应该还是比较齐全的吧。毕竟都这么久了,而且简书对我也有特别的意义,所以我还是舍不得丢弃的

~

正文

本段程序实现了:删除带头结点的单链表中所有Data为X的节点,而且跟王道的不一样的是,我只用了一个指针,另外,王道的P037的第一题,我运行了一下,没法跑出来,所以估计有点问题,然后第二题他用了两个指针交替,我就用一个,个人感觉还不错,起码空间复杂度比他的低~~ 走你

#include

#include

#define MAXSIZE 4

//注:定义队列结构体及其指针

typedef struct List

{

int Data;

struct List *next;

} List, *PtrL;

void Insert(PtrL ptrl,int data)

{

PtrL s;

s=(List *)malloc(sizeof(List));

s->Data=data;

s->next=ptrl->next;

ptrl->next=s;

}

void ShowList(PtrL ptrl)

{

PtrL show;

show=ptrl;

while(show)

{

int num=show->Data;

printf("\n##########\n#");

printf("\t%d\t",num);

printf("#\n");

printf("##########\n");

printf("\t||\n\t||\n\t||\n\t||");

printf("\n ~~~~~ " );

printf("\n VVV " );

printf("\n V " );

printf("\n" );

show=show->next;

}

printf("\tNULL\n\n\n\n");

}

void Del(PtrL ptrl)

{

PtrL D;

D=ptrl->next;

ptrl->next=D->next;

printf("\n%d\n",D->Data);

free(D);

}

void DelX(PtrL ptrl,int x)

{

PtrL p=ptrl;

if(p->next==NULL) return;

else if (p->next->Data==x)

{

Del(p);

DelX(p, x);

}

else

DelX(p->next,x);

}

int main()

{

PtrL ptrl;

ptrl=(List *)malloc(sizeof(List));

ptrl->next=NULL;

Insert(ptrl,2);

Insert(ptrl,5);

Insert(ptrl,3);

Insert(ptrl,8);

Insert(ptrl,5);

Insert(ptrl,11);

Insert(ptrl,9);

Insert(ptrl,7);

ShowList(ptrl);

DelX(ptrl,5);

ShowList(ptrl);

return 0;

}

efce54daa693

运行结果如下:

##########

# 0 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 7 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 9 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 11 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 5 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 8 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 3 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 5 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 2 #

##########

||

||

||

||

~~~~~

VVV

V

NULL

5

5

##########

# 0 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 7 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 9 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 11 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 8 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 3 #

##########

||

||

||

||

~~~~~

VVV

V

##########

# 2 #

##########

||

||

||

||

~~~~~

VVV

V

NULL

Program ended with exit code: 0

正文之后

薇薇pig 对不起啦。等我跟老师面谈完,如果顺利我周末就定火车票去找你,如果不顺利,我估计还要到处跑着去找老师,因为快签订保研协议书了,到时候后悔什么的没有余地了。虽然我知道你很气,很伤心,但是从理性角度来说,我还是倾向于先处理我未来五年的大方向的问题,所以先委屈你了,等周六给你个惊喜,不过这次不敢搭夜车去找你了,太难受了!!!!上次差点死在火车站!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值