阅读背景:

一、链表的数组实现_孑然夏石的博客_链表数组实现

来源:互联网 
#include <stdio.h>
/*链表的数组实现*/
#define max 20
typedef struct LNode* list;

struct LNode {
	int data[10];/*假设有10个*/
	int last;/*从0开始,是数组下标,不是第几个位置*/
};

/*建立空表*/
list make_empty(void)
{
	list ptrL;
	ptrL = malloc(sizeof(struct LNode));
	ptrL->last = -1;
	return ptrL;
}

/*查找*/
int find(list ptrL, int x)
{
	int i = 0;
	while (i <= ptrL->last && ptrL->data[i] != x)
		i++;
	if (i > ptrL->last)
		return NULL;
	else
		return i;
}

/*插入在a[i-1]前面*/
void insert(int x, list ptrl, int i)
{
	if (ptrl->last == max - 1) 
	{
		printf("表满\n");
		return;
	}
	if (i<1 || i>(ptrl->last + 2))/*画图就明白了*/
	{
		printf("位置不合法\n");
		return;
	}
	int j;
	for (j = ptrl->last; j >= i - 1; j--)
		ptrl->data[j + 1] = ptrl->data[j];
	ptrl->data[i - 1] = x;
	ptrl->last++;
	return;
}


/*删除第i个元素*/
void Delete(list ptrl, int i)
{
	if (ptrl->last == -1)
	{
		printf("表空\n");
		return;
	}
	if (i<1 || i>(ptrl->last + 1))
	{
		printf("位置不存在\n");
		return;
	}
	for (int j = i - 1; j < (ptrl->last + 1); j++)
		ptrl->data[j] = ptrl->data[j + 1];
	ptrl->last--;

	return;
}#include <stdio.h>
/*链表的数组实现*/
#define max 20
t



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: