#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct LNode { //結點型別
ElemType data; // 資料域
struct Lnode *next; // 指標域
} LNode;
typedef LNode * LinkList; //單鏈表型別
Status ListInsert_L(LinkList &L, int i, ElemType e) {
// L 為不帶頭結點的單鏈表的頭指標,在連結串列中第i 個結點之前插入新的元素 e
LNode *p = L;
int j = 1;
if(1==i)
{
s =(LNode*)malloc(sizeof(LNode)); // 生成新結點
if ( s == NULL) return ERROR;
s->data = e;
s->next = p; // 插入
L = s; // 插入
}
else{
while (p && j
{ p = p->next; ++j; } // 尋找第 i-1 個結點
if (!p || j > i-1)
return ERROR; // i 大於表長或者小於1
s =(LNode*)malloc(sizeof(LNode)); 生成新結點
s->next = p->next; // 插入
p->next = s; // 插入
return OK;
} // LinstInsert_L
#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct LNode { //結點型別
ElemType data; // 資料域
struct Lnode *next; // 指標域
} LNode;
typedef LNode * LinkList; //單鏈表型別
Status ListInsert_L(LinkList &L, int i, ElemType e) {
// L 為不帶頭結點的單鏈表的頭指標,在連結串列中第i 個結點之前插入新的元素 e
LNode *p = L;
int j = 1;
if(1==i)
{
s =(LNode*)malloc(sizeof(LNode)); // 生成新結點
if ( s == NULL) return ERROR;
s->data = e;
s->next = p; // 插入
L = s; // 插入
}
else{
while (p && j
{ p = p->next; ++j; } // 尋找第 i-1 個結點
if (!p || j > i-1)
return ERROR; // i 大於表長或者小於1
s =(LNode*)malloc(sizeof(LNode)); 生成新結點
if ( s == NULL) return ERROR;
s->data = e;
s->next = p->next; // 插入
p->next = s; // 插入
}
return OK;
} // LinstInsert_L