📄 t783-2-20070830226-陈赟.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
char data;
struct node *link;
}NODE;
NODE *delet(NODE *p_head,char b);
void insert(NODE* p_head,char a,char x);
void wwprint(NODE *wwh);
NODE *createlist(int n);
NODE *createlist(int n)
{ int i;
char ch;
NODE *head,*p,*q;
if(n==0)
return(NULL);
head=(NODE *)malloc(sizeof(NODE));
p=head;
for(i=1;i<n;i++)
{ printf("\nThe %dth element's data:",i);
scanf("%c",&(p->data));
ch=getchar();
q=(NODE *)malloc(sizeof(NODE));
p->link=q;
p=q;
}
printf("\nThe %dth element's data:",i);
scanf("%c",&(p->data));
ch=getchar();
p->link=NULL;
return(head);
}
void insert(NODE* p_head,char a,char x)
{ NODE * p,* q;
q=(NODE *)malloc(sizeof(NODE));
q->data=x;
q->link=NULL;
if(p_head==NULL)
p_head=q;
else
{ p=p_head;
while(p->data!=a&&p->link!=NULL)
p=p->link;
q->link=p->link;
p->link=q;
}
}
NODE* delet(NODE *p_head,char b)
{ NODE *p,*q;
q=p_head;
if(q==NULL) return(0);
if(q->data==b)
{
p_head=q->link;
free(q);
return p_head;
}
else
while((q->data!=b)&&(q->link!=NULL))
{ p=q;
q=q->link;
}
if(q->data==b)
{ p->link=q->link;
free(q);
return p_head;
}
else
return NULL;
}
void listprint(NODE *wwh)
{
NODE *k1;
int i;
k1=(NODE *)malloc(sizeof(NODE));
printf("\n");
for(i=0;wwh;i++)
{
printf("%c\n",wwh->data);
k1=wwh->link;
wwh=k1;
}
free(k1);
}
main()
{
NODE *ah;
char ele,k,s,m;
int n,u;
ah=(NODE *)malloc(sizeof(NODE));
printf("\n请输入链表元素的个数:\n");
printf("number=");
scanf("%d",&u);
getchar();
ah=createlist(u);
listprint(ah);
printf("please input the area where you want:\n");
printf("element=");
scanf("%c",&m);
getchar();
printf("\nplease input the element of you want to insert:\n");
printf("element=");
scanf("%c",&ele);
getchar();
insert(ah,m,ele);
listprint(ah);
printf("\nplease input the element of you want to delete:\n");
printf("element=");
scanf("%c",&s);
getchar();
ah=delet(ah,s);
listprint(ah);
getchar();
free(ah);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -