|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
void Init(LinkList *L)
{
(*L)=(LNode *)malloc(sizeof(LNode));
if((*L)==NULL)
{
printf("内存分配失败\n");
}
(*L)->next=NULL;
printf("创建成功\n");
}
void ListNextInsert(LinkList *L,LNode **z,int k)
{
int i=0;
LNode *p=(*L);//定位到要插入节点
while(p!=(*z))
{
p=p->next;
i++;
}
LNode *s=(LNode *)malloc(sizeof(LNode));
s->next=p->next;
p->next=s;
s->data=k;
}
void ListHeadInsert1(LinkList *L)
{
int i=0,e=-1;
int *a=&e;
printf("输入要插入的数据(9999介绍)\n");
scanf("%d",a);
while((*a)!=9999)
{
ListNextInsert(L,L,*a);
printf("输入要插入的数据(9999介绍)\n");
scanf("%d",a);
}
}
void GetElemm(LinkList *L,int k)
{
int i=0;
LNode *p=(*L);
for(i=0;i<=k;i++)
{
p=p->next;
printf("位序为%d的数据为%d\n",i+1,p->data);
}
}
void ListReverse(LinkList *LL,LinkList *L)
{
int i=0;
LNode *p=(*L);
while(p->next!=NULL)//判断是否为空表
{
p=p->next;//第一个循环指向节点1
//新建一个节点
LNode *s=(LNode *)malloc(sizeof(LNode));
s->data=p->data;
s->next=(*LL)->next;
(*LL)->next=s;
}
}
int main()
{
LinkList L;
LinkList LL;
Init(&LL);
Init(&L);
ListHeadInsert1(&L);//头插法
GetElemm(&L,5);// 编译无错误,此函数运行到这就不能继续运行下去,求大神帮忙看下
printf("shuru1\n");
ListReverse(&LL,&L);
printf("2\n");
GetElemm(&LL,5);
return 0;
}
编译结果
|
|