|
|
#2
易哓天2010-10-24 09:57
#include<stdio.h>
# include<stdlib.h> # include<string.h> typedef int Status; typedef struct LNode { char data; struct LNode *next; }LNode,*LinkList; Status InitList(LinkList &L) { L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; return (1); } Status ListInsert_L(LinkList &L,int i,char e) { LinkList p,s; int j; p=L; j=0; while(p&&j<i-1) { p=p->next; ++j; } if(!p||j>i-1) return 0; s=(LinkList)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; return 1; } Status ListDelete_L(LinkList &L,int i,char &e) { LinkList p,q; int j; p=L;j=0; while(p->next&&j<i-1) { p=p->next; ++j; } if(!(p->next)||j>i-1) return 0; q=p->next; p->next=q->next; e=q->data; free(q); return 1; } void main() { int n=1,a=1,b; char f; LinkList L; InitList(L); while(n<=26) { ListInsert_L(L,n,n+96); n++; } printf("如果你想插入一个字母请输入:1;如果你想删除一个字母请输入:0"); scanf("%d",&b); if(a==b) { printf("请输入你想要插入的位置:"); scanf("%d",&n); printf("请输入你想要插入的字母:"); scanf("%c",&f); ListInsert_L(L,n,f); } else { printf("请输入你想要删除的位置:"); scanf("%d",&n); ListDelete_L(L,n,f); } } 程序能不能执行,我就不知道了,你自己先思考一下吧,原程序错误挺多的, |
#include<stdio.h>
typedef int Status
typedef struct LNode
{
char data;
struct LNode *next;
}LNode,*LinkList;
Status InitList(LinkList L);
{
L=(char*)malloc(1*sizeof(LNode));
if(!L) exit (-2);
return 1;
}
Status ListInsert_L(LinkList &L,int i,char e)
{
p=L;
j=0;
while(p&&j<i-1)
{
p=p.next;
++j;
}
if(!p||j>i-1)
return 0;
s=(LinkList)malloc(sizeof(LNode));
s.data=e;
s.next=p.next;
p.next=s;
return 1;
}
Status ListDelete_L(LinkList &L,int i,char &e)
{
p=L;j=0;
while(p.next&&j<i-1)
{
p=p.next;
++j;
}
if(!(p.next)||j>i-1)
return 0;
q=p.next;
p.next=q.next;
e=q.next;
free(q);
return 1;
}
void main()
{
int n=1,a=1,b;
char f;
InitList(L);
while(n<=26)
{
ListInsert_L(L,n,n+96);
n++;
}
printf("如果你想插入一个字母请输入:"1";如果你想删除一个字母请输入:"0"");
scanf("%d",&b);
if(a==b)
{
printf("请输入你想要插入的位置:");
scanf("%d",&n);
printf("请输入你想要插入的字母:");
scanf("%c",&f);
ListInsert_L(L,n,f);
}
else
{
printf("请输入你想要删除的位置:");
scanf("%d",&n);
ListDletet_L(L,n,f);
}
}