📄 1-22.cpp
字号:
#include <stdio.h>
#include<malloc.h>
typedef struct lnode
{
int data;
struct lnode *next;
}lnode,*linklist;
void creatlist_l(linklist &l,int n)
{
l=(linklist)malloc(sizeof(lnode));
l->next = NULL;
linklist p;
linklist q=l;
printf("请输入数据:\n");
for(int i=n;i>0;i--)
{
p=(linklist)malloc(sizeof(lnode));
scanf("%d",&(p->data));
p->next=NULL;q->next=p;q=p;
}
}
void sort_l(linklist &l)
{
int a;
linklist p,q;
p=l->next;
while(p)
{
q=p->next;
while(q)
{
if(p->data>q->data)
{
a=p->data;
p->data=q->data;
q->data=a;
}
q=q->next;
}
p=p->next;
}
printf("排序后链表各元素为:\n");
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void listinsert_l(linklist &l,int e)
{
linklist s,p=l;
while(p->next->data<e)p=p->next;
s=(linklist)malloc(sizeof(lnode));
s->data=e;s->next=p->next;
p->next=s;
printf("插入数据后的链式表为:\n");
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void listdelete_l(linklist &l,int e)
{
linklist p=l;
while(p->next->data!=e&&p->next)p=p->next;
linklist q;
q=p->next;
while(q->data==e)
{
p->next=q->next;
q=q->next;
}
//free(q);
printf("删除数据后的链式表为:\n");
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
linklist l;
int n,a;
int i=1;
char word;
while(i)
{
printf("请选择你要进行的操作:A为建立线性表;B为插入数据;C为删除数据;D为退出\n");
scanf("%c",&word);
switch(word)
{
case'A':printf("请输入你要输入数据的个数:\n");scanf("%d",&n);creatlist_l(l,n);sort_l(l);break;
case'B':printf("请输入要插入的数:\n");scanf("%d",&a);listinsert_l(l,a);break;
case'C':printf("请输入要删除的数:\n");scanf("%d",&a);listdelete_l(l,a);break;
case'D':i=0;break;
default:printf("输入错误!\n");break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -