以下爲初步算法,如需調用,還需進一步修改
#define DATATYPE char
//typedef 作用:將struct node用LINKLIST重命名
typedef struct node{//定義節點類型
DATATYPE data;//數據域
struct node *next;//指針域
}LINKLIST;
// 插入函數
//在單鏈表L中, 第i個位置,插入節點x
int listinsert(LINKLIST &L,ElemType x , int i){
p = rear;//讓p等於第一個結點
j = 0;//讓計時器j歸0
//p!=NULL,且計時器小於i-1時,j++=>循環 p = p -> next讓指針後移
//直到找到,插入結點的位置
while (p && j < i - 1){
p = p -> next;
j++;
}
//找到之後,判斷其位置是否符合常理
if (!p || i <= 0){
return 0;
}
else
{
s = malloc(size);// malloc(size)函數,申請結點空間
s -> data = x;
s -> next = p -> next;
p -> next = s;
return 1;
}