#include<stdio.h>
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比新吴网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式新吴网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖新吴地区。费用合理售后完善,10余年实体公司更值得信赖。#include<stdlib.h>
#define N 9
typedef struct node{
int data;
struct node * next;
}ElemSN;
ElemSN*Createlink(int a[],int n){
int i;
ElemSN*h=NULL,*p,*t;
for(i=0;i<N;i++){
p=(ElemSN*)malloc(sizeof(ElemSN));
p->data=a[i];
if(!h)
h=t=p;
else
p->next=h;
t=t->next=p;
}
return h;
}//建立循环链表
ElemSN*DelKeyNode(ElemSN*h,int key){
ElemSN*p,*q;
p=h;
q=NULL;
do{
if(p->data-key) {//遍历的结点的data与key不相等
q=p;
p=p->next;
}//指针后移,继续遍历
else break;//相等跳出循环
}while(p-h);//循环结束:1.p指针只在与key值相等的结点上;2:p指针遍历完链表没找到,此时p=h;
if(p==h&&q)
printf("NO\n");
else {
if(p==h){//头结点data==key,此时需要找到h的上一个结点,
for(q=h;q->next-h;q=q->next);//q在h的上一结点
h=h->next; //h后移
}
q->next=p->next;//断链
free(p);
}
return h;
}
void Printlink(ElemSN*h){
ElemSN*p;
p=h;
do{
printf("%2d\n",p->data);
p=p->next;
}while(p-h);
}
int main(void){
int a[N]={1,2,3,4,5,6,7,8,9};
int key;
ElemSN*head;
head=Createlink(a,9);
printf("key=");
scanf("%d",&key);
head=DelKeyNode(head,key);
Printlink(head);
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文名称:循环链表的key删除-创新互联
本文网址:https://www.cdcxhl.com/article44/pedee.html
成都网站建设公司_创新互联,为您提供企业网站制作、定制网站、软件开发、用户体验、服务器托管、App设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联