資料結構 線性表 單鏈表

2021-07-30 13:47:19 字數 2320 閱讀 5655

/*

*資料結構:線性表的鏈式表示

*單鏈表

*線性表元素序號從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 = null; //讓尾指標指向null

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("已銷毀鍊錶");

}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");

return 0;

}

in.txt:

資料結構 線性表 單鏈表

本文只要實現單鏈表的初始化 插入 尾插 頭插 任意位置插入 刪除 尾刪 頭刪 刪除指定元素 查詢等。定義單鏈表 typedef int datatype typedef struct linknode linknode,plinknode,plist 實現單鏈表的所有介面 void initlink...

資料結構 線性表 單鏈表

include include 結構體的定義和數序表的定義 typedef int elemtype typedef struct node node 函式的宣告 void initnode node h int addnode node h,elemtype e void deletenode n...

資料結構 線性表 單鏈表Java

建立自定義的類和構造方法來實現簡單的單鏈表。將結點結構定義為私有內部類,在外部類中對鍊錶結構進行初始化,包括頭結點和初始大小。單鏈表操作原理不難,難點在於對鍊錶進行插入和刪除操作時,對於指標交換和分配的邏輯。插入 找到要插入的位置 i 後,用新結點的後繼指標替換 i 的後繼指標,再將 i 的後繼指標...