/*
*資料結構:線性表的鏈式表示
*單鏈表 迴圈鍊錶
*線性表元素序號從1算起
*date:2017/4/13
*/#include #include #define initsize 100
#define elemtype char
typedef struct lnodelnode,*linklist;
linklist createlist1(linklist &l); //頭插法建立單鏈表
linklist createlist2(linklist &l); //尾插法建立單鏈表
lnode *getelem(linklist l,int i); //按序號查詢表結點值
lnode *locateelem(linklist l,elemtype e); //按值按序號順序查詢表結點在鍊錶l中第一次出現的位置
void listinsert(linklist l,int i,elemtype e); //在第i個結點位置插入新結點,元素值為e
void listdelete(linklist l,int i,elemtype *e); //刪除第i個結點,用e返回刪除元素的值
void printlist(linklist l); //按先後序號列印鍊錶
bool emptylist(linklist l); //判斷鍊錶是否為空,為空就返回true,否則返回false
int lengthlist(linklist l); //返回鍊錶長度
void destorylist(linklist &l); //銷毀鍊錶
linklist createlist1(linklist &l)
return l;
}linklist createlist2(linklist &l)
r->next = l; //讓尾指標指向頭結點
return l;
}lnode *getelem(linklist l,int i)
return s;
}lnode *locateelem(linklist l,elemtype e)
return s;
}void listinsert(linklist l,int i,elemtype e)
void listdelete(linklist l,int i,elemtype *e)
void printlist(linklist l)
printf("\n");
}bool emptylist(linklist l)else
}void destroylist(linklist &l)
printf("%p\n",l);
printf("已銷毀鍊錶");
}int lengthlist(linklist l)
int main()else*/
createlist1(l1);
createlist2(l2);
printlist(l1);
printlist(l2);
printf("l1長度:%d\nl2長度:%d\n",lengthlist(l1),lengthlist(l2));
lnode *s1 = getelem(l1,3);
printf("l1第3個位置:%c\n",s1->data);
lnode *s2 = getelem(l2,4);
printf("l2第4個位置:%c\n",s2->data);
s1 = locateelem(l1,'e');
s2 = locateelem(l2,'p');
printf("s1 = locateelem(l1,'e'):%c\n",s1->data);
printf("s2 = locateelem(l2,'p'):%c\n",s2->data);
listinsert(l1,2,'z');
printf("listinsert(&l1,2,'z') :");
printlist(l1);
char e;
listdelete(l2,3,&e);
printf("listdelete(&l2,3,&e) : %c\n",e);
printlist(l2);
if(emptylist(l1))else
if(emptylist(l2))else
printf("l1長度:%d\nl2長度:%d\n",lengthlist(l1),lengthlist(l2));
destroylist(l2);
printf("l2\n");
printf("%p\n",l2);
return 0;
}
in.txt:
資料結構線性表 迴圈鍊錶
普通單鏈表 1 表尾的next指標指向null。2 從乙個結點出發只能找到後續的結點。迴圈單鏈表 1 表尾的next指標指向頭指標l。2 從乙個結點出發可以找到其他任何乙個結點。include include typedef struct lnodelnode,linklist 迴圈單鏈表初始化 b...
資料結構 線性表 單,雙 鍊錶操作
由於使用 引用更加方便,所以以後採用資料結構一書中的 格式 如下 include include typedef int elemtype typedef struct lnodelnode,linklist 頭部插入法 從空表開始,生成新結點,將讀取的資料存放進入新結點的資料域中。linklist...
資料結構之線性表 六 迴圈鍊錶
迴圈鍊錶的定義 1.概念與特點 迴圈鍊錶 是一種頭尾相接的鍊錶。表中的最後乙個結點的指標域指向頭結點,整個鍊錶形成環狀結構。優點 從表中任意乙個結點出發均可找到表中其他結點。補充 由於迴圈鍊錶中沒有null指標,所以涉及到遍歷操作時,其終止條件不再像單鏈表那樣判斷p或者p next是否為空,而是判斷...