#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define Status int
typedef struct DataType;
typedef struct node
{
DataType data [];
struct node *next;
}Node;
typedef struct Node *LinkList;
//单链表的读取:用e返回L中第i个元素的值
Status GetElem(LinkList L,int i,DataType *e)
{
int j;
LinkList p;
p = L->next;
j = 1;
while (p && j<i)
{
p = p->next;
j++;
}
if(!p || j>i //i<1 || i>ListLength(L);
{
return FALSE;
}
*e = p->data;
}
//单链表的插入:在L中第i个节点位置之前插入新的数据元素e,L的长度加一
Status ListInsert(LinkList *L,int i,DataType e)
{
int j;
LinkList p,s;
p=*L;
j = 1;
while(p && i>j)
{
p=p- >next;
j++;
}
if(!p || j>i)
{
return FALSE;
}
s = (LinkList)malloc(sizeof(Node));
s->data = e;
s->next = p->next;
p-next = s;
return TRUE;
}
//单链表的删除:删除L的第i个节点,并用e返回其值,L的长度减1;
Status ListDelete(LinkList *L,int i,DataType *e)
{
int j;
LinkList p,q;
p = *L;
j = 1;
while(p && i>j)
{
p = p->next;
j++;
}
if(!p || j>i)
{
return FALSE;
}
q = p->next;
p = q->next;
*e = q->data;
free(q);
return TRUE;
}
int main(int argc,char *argv[])
{
return 0;
}
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define Status int
typedef struct DataType;
typedef struct node
{
DataType data [];
struct node *next;
}Node;
typedef struct Node *LinkList;
//单链表的读取:用e返回L中第i个元素的值
Status GetElem(LinkList L,int i,DataType *e)
{
int j;
LinkList p;
p = L->next;
j = 1;
while (p && j<i)
{
p = p->next;
j++;
}
if(!p || j>i //i<1 || i>ListLength(L);
{
return FALSE;
}
*e = p->data;
}
//单链表的插入:在L中第i个节点位置之前插入新的数据元素e,L的长度加一
Status ListInsert(LinkList *L,int i,DataType e)
{
int j;
LinkList p,s;
p=*L;
j = 1;
while(p && i>j)
{
p=p- >next;
j++;
}
if(!p || j>i)
{
return FALSE;
}
s = (LinkList)malloc(sizeof(Node));
s->data = e;
s->next = p->next;
p-next = s;
return TRUE;
}
//单链表的删除:删除L的第i个节点,并用e返回其值,L的长度减1;
Status ListDelete(LinkList *L,int i,DataType *e)
{
int j;
LinkList p,q;
p = *L;
j = 1;
while(p && i>j)
{
p = p->next;
j++;
}
if(!p || j>i)
{
return FALSE;
}
q = p->next;
p = q->next;
*e = q->data;
free(q);
return TRUE;
}
int main(int argc,char *argv[])
{
return 0;
}