欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在探索VS2019的海洋中溺水

程序员文章站 2022-06-25 20:50:43
...

今天写了一个单链表!可是又为啥报错啊啊啊啊啊啊!报错我还不会改!!!!跪求救救菜弟弟叭,我菜炸了!

#include<stdio.h>
#include<stdlib.h>

typedef int ElemType;
typedef struct LNode
{
	ElemType data;
	struct LNode* next;
}LinkList;


void CreateListF(LinkList* L,ElemType a[], int n)
{
	LinkList* s;
	int i;
	L = (LinkList*)malloc(sizeof(struct LNode));
	L->next = NULL;
	for (i = 0; i < n; i++)
	{
		s = (LinkList*)malloc(sizeof(struct LNode));
		s->data = a[i];
		s->next = L->next;
		L->next = s;
	}
}

void CreateListR(LinkList* L, ElemType a[], int n)
{
	LinkList* s, * r;
	int i;
	r = L;
	for(i=0;i<n;i++)
	{
		L = (LinkList*)malloc(sizeof(struct LNode));
		s->data = a[i];
		r->next = s;
		r = s;
	}
	r->next = NULL;

}
void InitList(LinkList* L)
{
	L->next = NULL;


}

void DestroyList(LinkList* L)
{
	LinkList* pre = L, * p = L->next;
	while (p != NULL)
	{
		free(pre);
		pre = p;
		p = pre->next;
	}
	free(pre);
}

int ListEmpty(LinkList* L)
{
	return(L->next == NULL);
}

int ListLength(LinkList* L)
{
	int n = 0;
	LinkList* p = L;
	while (p->next != NULL)
	{
		n++;
		p = p->next;
	}
	return n;
}
void DispList(LinkList* L)
{
	LinkList* p = L->next;
	while (p != NULL)
	{
		printf("%d", p->data);
		p = p->next;
	}
	printf("\n");
}


int GetElem(LinkList* L, int i, ElemType e)
{
	int j = 0;
	LinkList* p = L;
	while (j < i && p != NULL)
	{
		j++;
		p = p->next;
	}
	if (p == NULL)
		return 0;
	else
	{
		e = p->data;
		return 1;
	}
}

int LocateElem(LinkList* L, ElemType e)
{
	int i;
	LinkList* p = L->next;
	while (p != NULL && p->data != e)
	{
		p = p->next;
		i++;
	}
	if (p == NULL)
		return 0;
	else
		return i;
}

int ListInsert(LinkList* L, int i, ElemType e)
{
	int j = 0;
	LinkList* p = L, * s;
	while (j < i - 1 && p != NULL)
	{
		j++;
		p = p->next;
	}
	if (p == NULL)
		return 0;
	else
	{
		s = (LinkList*)malloc(sizeof(struct LNode));
		s->data = e;
		s->next = p->next;
		p->next = s;
		return 1;

	}
}
int ListDelete(LinkList* L, int i, ElemType e)
{
	int j = 0;
	LinkList* p = L, * q;
	while(j<i-1&&p!=NULL)
	{
		j++;
		p = p->next;
	}
	if (p == NULL)
		return 0;
	else {
		e = q->data;
		p->data;
		p->next = q->next;
		free(q);
		return 1;
	}
}

int  main() {
	LinkList* L;
	int a[10] , i, e;
	L = (LinkList *)malloc(sizeof(struct LNode));
	for (i = 0; i < 10; i++)
		scanf_s("%d", &a[i]);
	InitList(L);
	CreateListR(L, a, 10);
	DispList(L);
	printf("length is %d\n", ListLength(L));
	printf("get is %d\n", GetElem(L, 3, 4));
	ListInsert(L, 3, 2);
	printf("after insert :\n");
	DispList(L);
	ListDelete(L, 4, e);
	printf("after delete:\n");
	DispList(L);
	printf("\n");
	return 0;
}`