本節討論線性表的鏈式儲存結構和鏈式儲存結構下操作的實現。鏈式儲存結構線性表資料元素的方法是,把儲存有資料元素的結點用指標域構造成鏈。指標是指向物理儲存單元位址的變數,我們把乙個由資料元素域及乙個或若干個指標域組成的結構體稱為乙個結點。其中,資料域元素間的邏輯關係表現在結點的鏈結關係上。鏈式儲存結構的線性表稱為鍊錶。根據指標域的不同和結點構造鏈的方法不同,鍊錶主要有單鏈表、單迴圈鍊錶和雙向迴圈鍊錶三種。其中,單鏈表是最經常使用的鍊錶。
下面是c**的實現
slnode.h
//結構體
typedef struct node
slnode;
//初始化
void listinitiate(slnode **head)
//元素長度
int listlength(slnode *head)
return size;
}//插入
int listinsert(slnode *head,int i,datatype x)
if(j!=i-1)
q=(slnode *)malloc(sizeof(slnode)); //生成新結點
q->data=x; //新結點資料域賦值
q->next=p->next; //插入的值 指標域指向頭點結點的下乙個指標
p->next=q; //插入的值 頭結點指向插入的資料域
return 1;
}//刪除
int listdelete(slnode *head,int i,datatype *x)
if(j!=i-1)
s=p->next;
*x=s->data;
p->next=p->next->next;
free(s);
return 1;
} //取資料元素
int listget(slnode *head,int i,datatype *x)
if(j!=i)
*x=p->data;
return 1;
}//撤銷單鏈表
void destroy(slnode **head)
*head=null;
}
實現效果
#include "stdio.h"
#include "malloc.h"
typedef int datatype;
#include "slnode.h"
void main(void)
{ slnode *head;
int i,x;
listinitiate(&head);
for(i=0;i<10;i++)
listinsert(head,i,i+1);
listdelete(head,4,&x);
for(i=0;i
單鏈表的操作實現
include malloc include typedef struct node node 此程式中的單鏈表帶頭結點.基本操作 建立 插入 刪除 長度 列印 排序 逆置 求中 合併 去重 node create int num void print node l int getlength no...
c 實現單鏈表的操作
include using namespace std define null 0 class node 節點類 建構函式 node int n 建構函式 node int n,node p void setnum int n 資料和指標兩個屬性分開操作 void setnext node p in...
單鏈表基本操作的實現
package pac1 class node public void show public class linklist 插入乙個頭結點 public void addheadnode int data 頭插法建立表,將新節點插入到頭結點之後 public void creatlist1 lin...