個人複習過程中的回顧,有問題請與我交流。(純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...