資料結構 單鏈表基本操作實現 C語言

2021-09-12 13:15:38 字數 1577 閱讀 9083

個人複習過程中的回顧,有問題請與我交流。(純c語言版,未用到c++的引用)

/*單鏈表(含頭結點)*/

#include#include//#define elemtype int

typedef int elemtype;

typedef struct lnodelnode,*linklist;

linklist createlist1(elemtype a, int n); //頭插法建立單鏈表

linklist createlist2(elemtype a, int n); //尾插法建立單鏈表

void outputlist(linklist l); //輸出單鏈表全部元素

int length(linklist l); //獲取單鏈表長度(不含頭結點)

int insertlnode(linklist l, int i, elemtype e); //在第i個位置插入結點,即在第i-1個結點之後插入新結點

int deletenode(linklist l, int i, elemtype *e); //刪除第i個結點,並用e返回其值

void main();

elemtype e;

l = createlist2(a, 5);

outputlist(l);

insertlnode(l, 6, 6);

outputlist(l);

deletenode(l, 1, &e);

printf("%d\n", e);

outputlist(l);

}linklist createlist1(elemtype a, int n)

return l;

}linklist createlist2(elemtype a, int n)

r->next = null;

return l;

}void outputlist(linklist l)

printf("\n");

}int length(linklist l)

return len;

}int insertlnode(linklist l, int i, elemtype e)

linklist p = l; //p始終指向第i-1個結點

linklist s = null;

while (--i)

s = (lnode*)malloc(sizeof(lnode));

s->data = e;

s->next = p->next;

p->next = s;

return 1;

}int deletenode(linklist l, int i, elemtype *e)

linklist p = l; //p指向待刪除結點的前驅結點

linklist q; //q指向待刪除結點

while (--i)

q = p->next;

p->next = q->next;

*e = q->data;

free(q);

return 1;

}

資料結構 單鏈表基本操作 C 實現

主體使用結構體 類 模板進行實現。1.linklist.h pragma once include using namespace std template class t struct node 結點結構 node t e,node next null template class t class...

《資料結構》單鏈表基本操作實現

define ok 1 define error 1 typedef int elemtype typedef int status typedef struct node lnode,linklist 構造空表 status initlist linklist l void creatlist l...

資料結構 單鏈表基本操作

實現單鏈表的初始化,頭插法建表,尾插法建表,查詢元素,插入元素,刪除元素等功能 include using namespace std define elemtype char typedef struct node node,linklist 初始化單鏈表 void initlist linkli...