在某種情況下,我們需要自己定義一串資料的長度,達到自由的新增或刪除的目的。這時我們通常會使用鍊錶這類資料儲存的方式。這裡只是簡單的介紹一下它的操作方式,到了下學期的資料結構學習階段,我應該還會再次介紹的。
1, 使用鍊錶時的基礎知識
首先我們需要知道鍊錶需要乙個可以指向本身結構體型別的指標變數作為成員,這種結構體型別為引用自身的結構體。
struct student
;
有了這樣乙個內部指標變數,那麼我們就可以使它指向下乙個結構體(節點)或者指向空指標。
其次我們要了解幾個函式的使用方法
1,malloc()
函式
void*malloc(unsigned int size)
其功能是在記憶體的動態儲存區中分配乙個大小為size的連續空間,並且返回乙個指向這片空間起始位址的指標。
2,calloc()
函式
void*malloc(unsigned n,unsigned int size)
其功能是在記憶體的動態儲存區中分配n個大小為size的連續空間,並且返回乙個指向這塊空間起始位址的指標。呼叫失敗,則返回空指標。
3,free()
函式
void free(void *p)
其功能是釋放掉由p指向的記憶體空間,其中p是由malloc或calloc建立的空間。
2,建立鍊錶
struct student *
creat()
putchar
('\n');
q2->next=
null
;return head;
}
建立乙個鍊錶,由我們的q1作為輸入指標,後面跟著個q2。輸入完之後q1作廢,q2作為尾指標指向null。
3,刪除乙個節點
struct student *
del(
struct student *p)
if(a==p->num)
else
printf
("there are no point which you want \n");
return head;
}
刪除乙個節點,p作為尋找指標,後面跟著個p2。如果p指向的資料為所給資料,則令p2的內部指標變數指向p內部指標變數指向的下乙個節點。p作廢。
4,插入乙個節點
struct student *
insert
(struct student *head,
struct student *one)
if(q0->num<=q1->num)
else
return head;
}
插入乙個節點,用q1的資料使q0找到合適的位置,q1的後面仍跟著q2,找到之後使q2的內部指標指向q0,使q0的內部指標指向q1。(q1終於沒有作廢了)
這裡只是簡述一下具體思路,到此,我c語言上課時的筆記也就整理完了,不知道各位能不能看的懂。太南了。還有4天就春節了,在此提前給大家拜個早年,如果有同我一樣正在學c語言的朋友,千萬不要放棄喔,寒假時好好補補呢。尤其是老師給我們布置的課設題目,真的太有意思。好啦,我們年後再見。
C 簡單鍊錶操作
include include include 定義乙個數字節點 typedef struct tagstnode stnode 建立inum個節點,返回指向第乙個節點的指標 stnode create int inum 列印 void print stnode psthead 將鍊錶反轉 stno...
鍊錶的簡單操作
鍊錶程式設計 一 實驗目的 1 掌握建立鍊錶中指標的運用 插入刪除節點的方法 二 實驗準備 1 複習鍊錶的概念 建立鍊錶的過程 鍊錶節點的插入與刪除 2 預習實驗內容,並在預習報告上寫出程式流程圖 或源 3 上機輸入源程式,除錯執行並記錄執行結果 4 將源程式存在自己的u盤上,課後按要求寫實驗報告。...
鍊錶的簡單操作
鍊錶的簡單操作大致包括 頭插法尾插法建立鍊錶,遍歷鍊錶,刪除新增結點。include include typedef struct node node void print node head 遍歷鍊錶 printf n return node create linklist int n 頭插法建立...