?? 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 + -