單鏈表建立,插入,刪除
阿新 • • 發佈:2019-02-15
學程式設計的小菜鳥一枚,希望未來好好學習天天向上~
歡迎各位大神前來指正~
放上資料結構的初次作業^_^(其實。。只做了一部分(°-°))
以下函式在VC6.0的環境中執行通過
//定義結構體
typedef struct link
{
int data;
struct lin
k *next;
}LNode,*LinkList;
/////////////////////////////////////////////
//建立連結串列
LinkList Create(LinkList head)
{
int n,i,num;
head=(LinkList)malloc(sizeof(LNode));
head->next=NULL;
printf ("輸入元素的個數:\n");
scanf("%d",&n);
LinkList s,r=head;
printf("輸入表:\n");
for(i=0;i<n;i++)
{
scanf("%d",&num);
s=(LinkList)malloc(sizeof(LNode));
s->data=num;
r->next=s;
r=s;
}
r->next=NULL;
return head;
}
//////////////////////////////////////////////
//插入函式:在第n位之前插入值為e的函式
LinkList Insert(LinkList head, int ,int e)
{
LinkList prior,r,next; //定義指標prior和next,next 指向prior的下一個元素,r的作用類似於過渡
prior=head;
n=n-1;//希望prior指向插入位置的前一位
for(int j=0;j<n;j++)
{
prior=prior->next;
}
r=(LinkList)malloc(sizeof(LNode));
r->data=e;
if (prior->next!=NULL)//插入位置不是最後一個元素
{
next=prior->next;
r->next=next;
prior->next=r;
}
if(prior->next==NULL)//在最後一個元素後插入
{
prior->next=r;
r->next=NULL;
}
return head;
}
/////////////////////////////////////////
//刪除函式:刪除值為e的節點
LinkList Delete(LinkList head,int e)
{
LinkList prior,next;
for(prior=head,next=head->next;next;next=next->next)
{
if(next->data==e)
{
prior->next=next->next;
}
else prior=prior->next;
}
return head;
}
////////////////////////////////////////////
//刪除函式2:刪除第n位的節點
LinkList Delete_(LinkList head,int n)
{
LinkList prior,r,next;
prior=head;
n=n-1;
for(int j=0;j<n;j++)
{
prior=prior->next;
}
if(prior->next->next!=NULL)
{
next=prior->next;
prior->next=next->next;
}
else
prior->next=NULL;
return head;
}
//////////////////////////////////
//把連結串列打印出來……
void show(LinkList head)
{
LinkList p;
p=head;
printf("輸出表:\n");
for(p=head->next;p;p=p->next)
{
printf("%d\t",p->data);
}
printf("\n\n");
}
主函式就不放了喲~
拜了個拜~
歡迎使用Markdown編輯器寫部落格
本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦:
- Markdown和擴充套件Markdown簡潔的語法
- 程式碼塊高亮
- 圖片連結和圖片上傳
- LaTex數學公式
- UML序列圖和流程圖
- 離線寫部落格
- 匯入匯出Markdown檔案
- 豐富的快捷鍵
快捷鍵
- 加粗
Ctrl + B
- 斜體
Ctrl + I
- 引用
Ctrl + Q
- 插入連結
Ctrl + L
- 插入程式碼
Ctrl + K
- 插入圖片
Ctrl + G
- 提升標題
Ctrl + H
- 有序列表
Ctrl + O
- 無序列表
Ctrl + U
- 橫線
Ctrl + R
- 撤銷
Ctrl + Z
- 重做
Ctrl + Y
Markdown及擴充套件
Markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的HTML頁面。 —— [ 維基百科 ]
使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立一個連結等,詳細語法參考幫助?。
本編輯器支援 Markdown Extra , 擴充套件了很多好用的功能。具體請參考Github.
表格
Markdown Extra 表格語法:
專案 | 價格 |
---|---|
Computer | $1600 |
Phone | $12 |
Pipe | $1 |
可以使用冒號來定義對齊方式:
專案 | 價格 | 數量 |
---|---|---|
Computer | 1600 元 | 5 |
Phone | 12 元 | 12 |
Pipe | 1 元 | 234 |
定義列表
- Markdown Extra 定義列表語法:
- 專案1
- 專案2
- 定義 A
- 定義 B
- 專案3
- 定義 C
-
定義 D
定義D內容
程式碼塊
程式碼塊語法遵循標準markdown程式碼,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
腳註
生成一個腳註1.
目錄
用 [TOC]
來生成目錄:
數學公式
- 行內公式,數學公式為:
Γ(n)=(n−1)!∀n∈ℕ 。 - 塊級公式:
更多LaTex語法請參考 這兒.
UML 圖:
可以渲染序列圖:
或者流程圖:
離線寫部落格
即使使用者在沒有網路的情況下,也可以通過本編輯器離線寫部落格(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。Markdown編輯器使用瀏覽器離線儲存將內容儲存在本地。
使用者寫部落格的過程中,內容實時儲存在瀏覽器快取中,在使用者關閉瀏覽器或者其它異常情況下,內容不會丟失。使用者再次開啟瀏覽器時,會顯示上次使用者正在編輯的沒有發表的內容。
部落格發表後,本地快取將被刪除。
使用者可以選擇 把正在寫的部落格儲存到伺服器草稿箱,即使換瀏覽器或者清除快取,內容也不會丟失。
注意:雖然瀏覽器儲存大部分時候都比較可靠,但為了您的資料安全,在聯網後,請務必及時發表或者儲存到伺服器草稿箱。
瀏覽器相容
- 目前,本編輯器對Chrome瀏覽器支援最為完整。建議大家使用較新版本的Chrome。
- IE9以下不支援
- IE9,10,11存在以下問題
- 不支援離線功能
- IE9不支援檔案匯入匯出
- IE10不支援拖拽檔案匯入
- 這裡是 腳註 的 內容. ↩