C單鏈表操作

2021-08-11 15:00:54 字數 2129 閱讀 7909

函式順序依次為單鏈表的建立(頭插和尾插法),初始化,判空,遍歷,求鍊錶長度,按值查詢,按位查詢,插入,刪除,銷毀操作

並且在主函式中舉例說了鍊錶的建立,遍歷,求長,刪除,插入操作;

高階操作:

c迴圈鍊錶

#include #include typedef int datatype;          //用datatype 替代 int方便修改資料型別

typedef struct nodenode;

//建立單鏈表(尾插法)

//比如說資料1 2 3 4 5

//鍊錶中從頭指標開始資料順序為1 2 3 4 5

//每次從鍊錶末尾插入

node *creattaillist(datatype a,int n)

r -> next = null; //終端結點指標指向null

return first;

}//建立單鏈表(頭插法)

//比如說資料1 2 3 4 5

//鍊錶中從頭指標開始資料順序為5 4 3 2 1

//每次從鍊錶頭部插入

node *creatheadlist(datatype a,int n)

return first;

}//鍊錶初始化

node *initlist()

//判斷空是否為空鍊錶

int empty(node *first)

//遍歷

void printlist(node*first)

}//求鍊錶長度

int length(node*first)

return cnt;

}//按值查詢,查詢失敗返回0,成功返回資料所在位置

int locale(node *first,int x)

return 0;

}//按位查詢,失敗返回0,成功返回指向第x個資料的指標ptr

int get(node *first,int x,datatype *ptr)

if(p == null)

return 0;

*ptr = p->data;

return 1;

}//插入

int insert(node *first,int x,datatype t)

if(p == null )

s = (node*)malloc(sizeof(node));//請求分配空間 .

s -> data = t; //申請乙個結點,資料域為x

s -> next = p -> next; //將結點s插入到結點p之後

p -> next = s;

return 1;

}//刪除某一位置的結點

int delete(node *first,int i,datatype *ptr)

if(p == null || p-> next == null)

q = p -> next;

*ptr = q -> data; //刪除失敗的值

p -> next = q -> next;

free(q);

return 1;

}//銷毀

void destroylist(node *first)

}int main()

; int x,n;

n = sizeof(data)/sizeof(data[0]);//求出陣列data中元素個數

first = creattaillist(data,n);//尾插

printf("after creat,the data is: ");

printlist(first);

printf("\n");

if(delete(first,3,&x))

else

printf("delete defult\n");

if(insert(first,2,7))

else

printf("insert defult\n");

printf("the list length is: %d",length(first));

return 0;

}

C單鏈表操作

今天面試給 宇龍酷派 鄙視了。我想說,其實鍊錶反轉我會!單鏈表 初始化 建立 顯示 刪除 插入特定位置 刪除特定位置 反轉操作。include include include include typedef struct student node 初始化 node initnode head nex...

C單鏈表操作

頭指標存放鍊錶元素數量,頭節點開始存放資料,尾節點指向null list.h ifndef list h define list h include include define debug 0typedef struct nodenode node l malloc 分配記憶體 node init...

C單鏈表的操作

單鏈表的建立 刪除結點 插入新結點 遍歷但鍊錶。很多不足之處,希望多多提意見改正 1 鍊錶 1 單鏈表的建立 首先建立乙個節點,將頭結點 q臨時節點 建立節點p。都指向這個節點。接下來迴圈建立鍊錶的每個節點,為了實現人機互動,最好在建立每個節點的時候都詢問是否建立節點,建立下乙個單獨節點結束之後。然...