非易吧 关注:4贴子:40
  • 0回复贴,共1
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
LinkList CreateList_L(LinkList L,int n){
LinkList p;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(int i=n;i>0;i--)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
return L;
}
int Insertlist(LinkList L,int i,int &e)
{
int j;
LinkList p,s;
p=L;j=0;
while(p&&j<i-1){p=p->next;j++;}
if(!p||j>i-1) return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e; s->next=p->next; p->next=s;
return OK;
}
int Delete(LinkList L,int i){
int j;
LinkList p, q;
p=L;j=0;
while(p->next &&j<i-1){
p=p->next ;++j;
}
if(!(p->next )||j>i-1)return ERROR;
q=p->next ;p->next =q->next ;
free(q);
return OK;
}
int GetElem(LinkList L,int i,int &e){
LinkList p;int j;
p=L->next ;j=1;
while(p&&j<i){
p=p->next;++j;
}
if(!p||j>i) return ERROR;
e=p->data;
return OK;
}
int Show(LinkList L){
LinkList p;
p=L->next;
while(p){
printf("%d ",p->data);
p=p->next;
}
return 1;
printf("\n");
}
int main(){
LinkList L=NULL;
int n;
printf("n=");
scanf("%d",&n);
L=CreateList_L(L,n);
Show(L);
printf("\n请输入要删除的位置:");
int i;
scanf("%d",&i);
Delete(L,i);
Show(L);
int h,e;
printf("\n请输入插入的位置");
scanf("%d",&h);
printf("请输入插入的值");
scanf("%d",&e);
if(Insertlist(L,h,e))
Show(L);
else
printf("插入的位置错误");
int q,w;
printf("\n请输入查找的位置");
scanf("%d",&q);
if(GetElem(L,q,w))
printf("\n%d位置处的值为%d\n",q,w);
else
printf("查找的位置错误");
return OK;
}


IP属地:天津1楼2016-03-31 10:41回复