typedef struct lnodecreatlist( l,n)elemtype data;
struct lnode *next;
}lnode,*linklist;
操作結果:構造乙個表長為n的鍊錶
deatroylist(l)
初始條件:單鏈表l已存在
操作結果:銷毀單鏈表
listempty(&l)
初始條件:單鏈表l已存在
操作結果:若l->next指向null,則返回true,否則返回false
listlength(l)
初始條件:單鏈表已存在
操作結果:返回l中資料元素的個數
listinsert(&l,i,e)
初始條件:單鏈表已存在,1<= i <=listlength(l)+1
操作結果:在l中第i個位置之前插入新的元素e
listdelete(&l,i,&e)
初始條件:單鏈表已存在且非空,1<= i <=listlength(l)
操作結果:刪除l的第i個資料元素,並用e返回其值,釋放該結點
clearlist(&l)
初始條件:單鏈表已存在
操作結果:將l重置為空表
getelem(l,l,&e)
初始條件:單鏈表已存在,1<= i<=listlength(l)
操作結果:用e返回l中第i個資料元素的值
print(l)
初始條件:單鏈表已存在
操作結果:輸出l中的全部元素
//程式名稱:單鏈表的實現
//編譯環境:visual c++ 6.0
//最後修改日期:2018-10-21
#define ok 1
#define error 0
#define true 1
#define false 0
#include#includetypedef int status;
typedef int elemtype;
//定義單鏈表
typedef struct lnode
lnode,*linklist;
//建立鍊錶
void creatlist(linklist &l,int n)
}//銷毀鍊錶
status destroylist(linklist &l)
return ok;
}//判表空
status listempty(linklist &l)
//測表長
status listlength(linklist l)
//插入元素
status listinsert(linklist &l,int i,elemtype e)
if(!p||j>i-1)
return error;
linklist s;
s = (linklist)malloc(sizeof(lnode));
s->data = e;
s->next = p->next;
p->next = s;
return ok;
}//刪除元素
status listdelete(linklist &l,int i,elemtype &e)
if(!(p->next) || j > i-1)
return error;
q = p->next;
p->next = q->next;
e = q->data;
free(q);
return ok;
}//清空鍊錶
status clearlist(linklist &l)
//獲取元素
status getelem(linklist l,int i,elemtype &e)
if(!p||j>i)
return error;
e = p->data;
return e;
}//輸出元素
void print(linklist l)
}int main()
單鏈表的實現
include includetypedef struct node 定義鍊錶 snode snode creat 建立鍊錶的函式 q next null return head int length snode head 測鍊錶的結點數 return i void display snode he...
單鏈表的實現
單鏈表夜市線性表的一種表現形式,乙個表節點由乙個資料空間和乙個指標域組成。指標域記錄下乙個結點的位址。鍊錶在插入,刪除功能中效率高。但是讀取某個結點的時候需要順序讀取。效率不如順序儲存形式。下面是一些鍊錶實現的 鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h define...
單鏈表的實現
單鏈表是資料結構中重要並且基礎的一環,學習資料結構就需要知道單鏈表有的常用操作。1 單鏈表的頭插式建立 2 單鏈表的尾插式建立 3 單鏈表的長度計算 4 單鏈表的列印輸出 5 單鏈表的釋放操作 6 單鏈表是否為空判斷 7 單鏈表在指定index插入指定元素 8 單鏈表刪除指定index的節點 9 單...