為了複試開始複習c語言的一些程式設計技巧,今天覆習c鍊錶。
1.鍊錶的結構體
typedef struct nodenode;
2.建立乙個有n的節點的鍊錶
node *linkcreate(int n)
end->next = null; //最後一位需要null,遍歷的時候while(p)就行
return head;
}
補充說明:
1.malloc函式是動態分配空間,會返回開闢空間的首位址(這樣就可以通過返回的指標找到它),加(node *)的目的是讓計算機知道,如何去劃分這個開闢的空間。
2.圖示如下
3.遍歷鍊錶
void outlink(node* head) //頭指標傳入
}
4.插入
void insert(node *head, int n)
//指標後移到指定位置(n位之後)
if (p)
else
}
插入示意圖如圖
5.刪除結點
void del(node *head, int n)
//同上
if (p)
else
}
刪除示意圖如圖
6.整個程式預覽
#include#include#define n 5
typedef struct node
node;
/*******************建立鍊錶***********************/
node *createlink()
while(num!=0);
end->next = null;
return head;
}/***************把指標反過來,從後期往前指****************/
void backward(node* head)
end=p; //end定位到最後
while(1)
p->next=s;
s->next=null;
if(s==head)
}//return head;
}/*******************在第n個結點插入資料data,0表示最前面***********************/
void *insertlink(node* head,int n,int data)
s->data=data;
s->next = p->next ;
p->next =s;
}/*******************刪除第n個結點,0是第乙個結點,n過大則刪除最後乙個***********************/
void dellink(node* head,int n)
s=p->next;
p->next = s->next;
free(s);
}/*******************遍歷列印***********************/
void outlink(node* head)
printf("\n");
}/*******************對鍊錶之中的資料 進行排序***********************/
void orderlink(node* head) //對鍊錶之中的資料 進行排序
p = p->next;
} s = s->next ; }}
/*****************插入乙個數,按順序放在乙個順序鍊錶中***********************/
void insertorder(node* head,int num)
p=p->next ; }}
int main()
資料結構自學筆記 C語言 鍊錶
從上一節內容裡可以看出,線性表的順序儲存結構的特點是邏輯關係上相鄰的兩個資料元素在物理位置上也相鄰,因此可以通過實體地址的關係來隨機訪問表中任意元素,它的儲存位置可以用乙個簡單的直觀的公式來表示。然而從另一方面來看,這個特點也導致了這種儲存結構的弱點,在插入或者刪除操作時需要移動大量元素。這節我們學...
C語言基礎 鍊錶
參考清華大學軟體學院 諶衛軍 c語言程式設計 課件 1 鍊錶 1.1 鍊錶的基本概念 定義如下的結構體型別 struct train tag 2 對鍊錶的操作 2.1 建立動態鍊錶 例 建立乙個鍊錶,並輸入每乙個結點的各種描述資訊 貨櫃編號 貨物名稱 貨物重量 發貨地點 到貨時間等 直到使用者輸入的...
C語言基礎入門一(自學筆記)
int型 儲存要佔1個機器字長,16位機器,範圍 32768 32767目前大多數機器32位,即佔4個位元組,儲存數字範圍為 2147483648 2147483647 short型 儲存小於等於int,32768 32767 long型 儲存大於等於int,2147483648 214748364...