//1、有頭結點方便對首元資料元素的刪除,插入操作。不帶頭結點要判斷是不是作用在首元,是就得改變頭指標指向。
//2、頭結點資料域可以存表長。(head->data-k+1)取倒數第k個元素。——兩遍。
//(走一遍,定義兩個指標,先走乙個,使兩個之間相差k個位置,再一起移動,走得快的的走到空了,走得慢的的資料域就是指定元素。)
//#include
#include
typedef struct lnode
lnode,*linklist;//listlist p==lnode *p
void init(linklist *l)//引用用&,下面直接用p。
//或者int init()
////void creat(linklist l, int n)
//linklist creat(int n)
return h;
}void outprint(linklist l)
//或者 lnode *p=l; while(p->next) printf("");比較彆扭,放棄!}
int length(linklist l)
return count;}
int locate(linklist l, int i)
if(!p||count>i)//左界之外和右界之外
if (count == i) return p->data;
return null;
}int main()
//頭插法和尾插法
//空白表,建結點,將資料存入資料域,將該新結點插到鍊錶前端。先接後面的結點。
//如在頭結點後插入s;
//s->next = l->next;
//l->next = s;
//先來的在後面,所以是個逆序表。
////尾插法——正序。
//while(p->next)太麻煩,建立乙個尾指標。
//r->next=s;
//s->next=null;注意不能忘,否則鍊錶沒有結束。可以放在最前面。
單鏈表的一些常用操作
include include include define ok 1 define error 0 define true 1 typedef struct lnodelnode,linklist linklist是結構指標,在下面定義結構體指標的時候不能夠加 獲得單鏈表第i個位置處的元素,賦值給...
單鏈表的一些基本操作
本文主要介紹了單鏈表的初始化 頭插 頭刪 尾插 尾刪 查詢 指定位刪除 指定數刪除 指定位插入 銷毀 排序等.標頭檔案 ifndef linklist h define linklist h include include includetypedef int datatype typedef st...
單鏈表的建立和一些操作
個人建立的乙個類,實現單鏈表的基本操作,算是對資料結構知識的一點溫習.ifndef templist h define templist h include include template class node node t data,node next1 null 構造節點,指定元素和後繼結點 ...