#include#includetypedef struct lnode
lnode, *linklist; //lnode : 結構體型別,linklist :結構體指標;
typedef enum bool;
//lnode* 等價於 linklist
//頭插法
linklist creatlist1(linklist l)
return l;
}//尾插法
linklist creatlist2(linklist l)
r->next = null; //下乙個節點為null
return l;
}//輸出鍊錶
void printlist(linklist l)
}//輸出鍊錶長度(不包括頭結點)
int length(linklist l)
return length;
}//判斷是否為空
bool empty(linklist l)
else
}//刪除整個鍊錶
void destroylist(linklist l)
l->next = null;
}int listdelete(linklist l, int i)
int index = 0;
linklist r = l, s;
while (index != i - 1) //r處於第i-1個節點,index=i-1
s = r->next;
index = s->data;
r->next = r->next->next;
free(s);
return index;
}//插入元素
bool listinsert(linklist l, int i, int e)
while (index != i - 1) //r處於第i-1個節點,index=i-1
s = (lnode*)malloc(sizeof(lnode));
s->data = e;
//正常情況
if (inext = r->next;
r->next = s;
} //如果插入位置為最後一位
else
return true;
}//得到指定位置的值
linklist getelem(linklist l, int i)
int index = 0;
linklist r = l;
while (index != i) //r處於第i個節點,index=i
// return r->data;
return r;
}void main()
else
break; /* 可選的 */
//print all elem list
case 2:
if (length(l)>0)
else
break; /* 可選的 */
//print list length
case 3:
printf("list length : %d\n", length(l)); printf("****************************************====\n");
break; /* 可選的 */
//is list empty?
case 4:
empty(l); printf("****************************************====\n");
break; /* 可選的 */
//insert elem in list's index
case 5:
printf("input insert index : \n");
scanf_s("%d", &i);
printf("input insert elem : \n");
scanf_s("%d", &e);
listinsert(l, i, e);
printf("****************************************====\n");
break; /* 可選的 */
//delete index in list
case 6:
printf("input delete index : \n");
scanf_s("%d", &i);
listdelete(l, i); printf("****************************************====\n");
break; /* 可選的 */
//get index in list
case 7:
printf("input index : \n");
scanf_s("%d", &i);
r = getelem(l, i);
if (r!=l)
break; /* 可選的 */
case 8:
destroylist(l);
break; /* 可選的 */
/* 您可以有任意數量的 case 語句 */
default: /* 可選的 */
exit(0);
break;
//statement(s);
} }}
go語言實現鍊錶
宣告結構體 宣告全域性變數,儲存頭結點 var head node var curr node 宣告節點型別 type node struct 建立頭結點 func createheadnode data string node 新增新節點 func addnode data string node...
Go語言 實現鍊錶
鍊錶是乙個結點指向下乙個結點的儲存結構,每乙個結點有兩個元素,乙個是存放資料本身,另乙個資料指向下乙個結點,由這些結點組成乙個鍊錶 package main import fmt type node struct type nodelist struct func this nodelist add...
Python語言 實現鍊錶
鍊錶是乙個結點指向下乙個結點的儲存結構,每乙個結點有兩個元素,乙個是存放資料本身,另乙個資料指向下乙個結點,由這些結點組成乙個鍊錶 class node def init self,data self.data data self.next none class nodelist def init ...