?? listlink.cpp
字號:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MAX 20
typedef struct Lnode
{
char data;
struct Lnode *next;
}Linklist;
void create(Linklist *&L,char a[],int n) //創(chuàng)建鏈表
{
Linklist *s,*r;int i;
L=(Linklist*)malloc(sizeof(Linklist));
L->next=NULL;
r=L;
for(i=0;i<n;i++)
{
s=(Linklist*)malloc(sizeof(Linklist)); //創(chuàng)建新的結(jié)點
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void Insert(Linklist *&L,int i,char &e) //插入
{
int j=0;
Linklist *p=L,*s;
while(j<i-1&&p!=NULL)
{ j++;
p=p->next;
}
if(p==NULL)
printf("插入錯誤!");
else
{
s=(Linklist *)malloc(sizeof(Linklist));
s->data=e;
s->next=p->next;
p->next=s;
printf("插入成功!:");
}
}
void Delete(Linklist *&L,int i,char &e) //刪除
{
int j=0;
Linklist *p=L,*q;
while(j<i-1&&p!=NULL)
{ j++;
p=p->next;
}
if(p==NULL)
printf("刪除錯誤!:");
else
{
q=p->next;
if(q==NULL)
printf("刪除錯誤!:");
p->next=q->next;
free(q);
printf("刪除成功!:");
}
}
void Locate(Linklist *&L,char e)
{
int j=1;
Linklist *p=L;
while(p!=NULL&&p->data!=e)
{
p=p->next;
j++;
}
if(p==NULL)
printf("查找錯誤!");
else
printf("你要查找的元素在第%d個位置:",j);
}
void Display(Linklist *&L)
{
printf("該單鏈表如下:\n");
Linklist *p=L->next;
while(p!=NULL)
{
printf("%c ",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
char a[MAX],c;
Linklist *L;
int i,n;
printf("請輸入你要建立的單鏈表元素個數(shù):");
scanf("%d",&n);
for (int j=0;j<n;j++)
{
printf("輸入第%d個元素值:",j+1);
scanf("%s",&a[j]);
}
create(L,a,n);
while(1) //選擇菜單
{
int ch;
printf("\n請選擇:\n1. 插入元素");
printf("\n2. 刪除元素");
printf("\n3. 查找元素");
printf("\n4. 列表顯示");
printf("\n5. 退出系統(tǒng)\n");
while(1)
{
scanf("%d",&ch);
if(ch>=1&&ch<=5)break;
else printf("\n請選擇: 1|2|3|4|5.");
}
switch(ch)
{
case 1:printf("請輸入你要插入的位置:");
scanf("%d",i);
printf("請輸入你要插入的元素:");
scanf("%s",c);
Insert(L,i,c);break;
case 2:printf("請輸入你要刪除的位置:");
scanf("%d",i);
Delete(L,i,c);break;
case 3:printf("請輸入你要查找的元素:");
scanf("%s",&c);
Locate(L,c);break;
case 4:Display(L);break;
case 5:exit(0); //退出程序
default: break;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -