C資料結構 簡單的單鏈表例子

2021-10-07 15:31:43 字數 1982 閱讀 2696

帶頭結點的單鏈表。

單鏈表由頭指標唯一確定。

head起指向作用,資料域沒有意義。

/*

* 指標涉及到頭、尾、臨時節點

* 頭插法:臨時節點放在頭部

* 尾插法:臨時節點放在末尾

*/#include#include//定義資料型別別名

typedef int datatype;

//定義節點的結構體和別名

typedef struct linknodenode, *linklist;

//建立表,頭插法迴圈輸入

linklist creat_linklist(linklist head)

else

break;

} return head;

} //建立表,尾插法迴圈輸入

linklist creat_linklist_tail(linklist head)

else

} tail->next=null;

return head;

} //表長

int lengthlist(linklist head)

return n;

}//查詢1-查詢第i個元素並返回位址,沒有找到就返回null

linklist searchlist1(linklist head,int i)

if(j==i)

return p;

else

return null;

} //查詢2-查詢第一次值為x的位址,否則返回null

linklist searchlist2(linklist head,datatype x)

if(p->data==x)

else

} //插入-在第i位插入乙個元素x

int inslist(linklist head,int i,datatype x)

if(!p||j>i)

return 0;//插入失敗-i超出範圍

node *s=new node;

s->data=x;

s->next=p->next;

p->next=s;

return 1;//插入成功

} //刪除第i個元素

int dellist(linklist head,int i)

if(!(p->next)||j>i-1)

else

} //方法2,顯式返回指標

node* create_linklist2()

//對應第二種的頭插法

int insert_linklist2(node* lq,datatype x)

//列印輸出單鏈表

void showlist_linklist(linklist head)

}void test1()

printf("要查詢的值:");

scanf("%d",&i);

p=searchlist2(head,i);

if(p)

else

printf("要刪除的值的位置:");

scanf("%d",&i);

i=dellist(head,i);

if(i==1)

else

printf("表長:%d\n你輸入的資料是:\n",lengthlist(head));

showlist_linklist(head);

printf("\n在第i位插入x:");

scanf("%d %d",&i,&x);

i=inslist(head,i,x);

if(i==1)else

printf("表長:%d\n你輸入的資料是:\n",lengthlist(head));

showlist_linklist(head);

}void test2()

else }}

int main()

C 資料結構 單鏈表

c 實現 首先,構造乙個單鏈表的節點類 class link 然後是以這個節點類為基礎,建立單鏈錶類 這裡簡單實現了單鏈表的兩個功能新增和輸出 class linklist if head.next null else if head.next null 列印全部資料 public void pri...

c 資料結構單鏈表

鍊錶定義 typedef struct linklistlinklist,linknode linklist 表示頭結點,linknode 表示節點linklist head linknode node 鍊錶初始化 bool linkinit linklist l l next null l dat...

C 資料結構 單鏈表

單鏈表的實現 include using namespace std template typename t struct node template typename t class linklist template typename t linklist linklist template t...