求大神看看错哪了?

qq_36243500 2016-09-26 01:05:42
#include <stdio.h>
#include <stdlib.h>
#define ERROR -1
#define OK 1
typedef int Elemtype;
typedef struct Node //结点类型定义
{
Elemtype data;
struct Node* next;
}Node,*LinkList; //结构体指针类型

void lnitList(LinkList L) //初始化单链表
{
L=(LinkList)malloc(sizeof(Node)); //建立头结点
L->next=NULL; //建立空的单链表L
}

void CreateFromHead(LinkList L) //用头插法建立单链表
{
LinkList s;
char c;
while(c!='$') //输入$结束循环
{
c=getchar();
s=(Node*)malloc(sizeof(Node)); //建立新结点
s->data=c;
s->next=L->next; //将S结点输入表头
L->next=s;
}
}

LinkList Get(LinkList L,int i) //在单链表中查找第i个结点
{
int j;
LinkList p;
if(i<=0)
return NULL;
p=L; // 从头结点开始扫描
j=0;
while((p->next!=NULL) && (j<i))
{
p=p->next; // 扫描下一结点
j++; // 已扫描结点计数器
}
if(i==j)
return p; // 找到了
else
return NULL; // 没找到
}
LinkList Locate(LinkList L, Elemtype key) //在单链表中查找值为key的结点
{
LinkList p;
p=L->next; // 从表中第一个结点开始
while(p!=NULL) // 当前表未查完
{
if(p->data != key)
p=p->next;
else
break; // 找到时退出循环
}
return p;
}
int ListLength(LinkList L) // 求单链表的长度
{
LinkList p;
p=L->next;
int j=0; // 用来存放单链表的长度
while(p!=NULL)
{
p=p->next;
j++;
}
return j; //j为求得的长度

}
void InsList(LinkList L,int i,Elemtype e) // 单链表的插入操作
{
LinkList p,s;
int k;
if(i<=0)
return ERROR;
p=L; // 从表头开始查找第i-1个结点
k=0;
while(p!=NULL && k<i-1)
{
p=p->next;
k=k+1;
}
if(p == NULL)
{
printf("插入位置不合理");
return ERROR;
}
s=(LinkList)malloc(sizeof(Node)); // 申请一个新结点
s->data=e; // 值e置入s的数据域
s->next=p->next; //修改指针,完成插入
p->next=s;
return OK;
}
int DelList(LinkList L,int i,Elemtype *e) //单链表的删除
{
LinkList p,r;
int k;
p=L;
k=0;
while(p->next!=NULL && k<i-1) //寻找被删除结点i的前驱结点使P指向它
{
p=p->next;
k=k+1;
}
if(p->next == NULL)
{
printf("删除的位置不合理");
return ERROR;
}
r=p->next;
p->next=r->next; //修改指针,删除结点r
*e=r->data;
free(r); //释放内存
return OK;




}


int main()
{
int i=3;
int j=5;
int *e;
printf("建立一个单链表:");
LinkList L;
lnitList(L);
CreateFromHead(L);
printf("查找第%d个结点",i);
Get(L,i);
printf("查找值为%d的结点",j);
Locate(L,j);
printf("链表的长度");
ListLength(L);
printf("第%d个位置插入32",i);
InsList(L,i,32);
printf("第%d个位置插入32",i);
DelList(L,j,&e);
}
...全文
300 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36243500 2016-09-26
  • 打赏
  • 举报
回复
呃,可能全错了吧

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧