1. 程式人生 > >單鏈表建立,插入,刪除

單鏈表建立,插入,刪除

學程式設計的小菜鳥一枚,希望未來好好學習天天向上~
歡迎各位大神前來指正~
放上資料結構的初次作業^_^(其實。。只做了一部分(°-°))

以下函式在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)=(n1)!n
  • 塊級公式:
x=b±b24ac2a

更多LaTex語法請參考 這兒.

UML 圖:

可以渲染序列圖:

Created with Raphaël 2.1.0張三張三李四李四嘿,小四兒, 寫部落格了沒?李四愣了一下,說:忙得吐血,哪有時間寫。

或者流程圖:

Created with Raphaël 2.1.0開始我的操作確認?結束yesno
  • 關於 序列圖 語法,參考 這兒,
  • 關於 流程圖 語法,參考 這兒.

離線寫部落格

即使使用者在沒有網路的情況下,也可以通過本編輯器離線寫部落格(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。Markdown編輯器使用瀏覽器離線儲存將內容儲存在本地。

使用者寫部落格的過程中,內容實時儲存在瀏覽器快取中,在使用者關閉瀏覽器或者其它異常情況下,內容不會丟失。使用者再次開啟瀏覽器時,會顯示上次使用者正在編輯的沒有發表的內容。

部落格發表後,本地快取將被刪除。 

使用者可以選擇 把正在寫的部落格儲存到伺服器草稿箱,即使換瀏覽器或者清除快取,內容也不會丟失。

注意:雖然瀏覽器儲存大部分時候都比較可靠,但為了您的資料安全,在聯網後,請務必及時發表或者儲存到伺服器草稿箱

瀏覽器相容

  1. 目前,本編輯器對Chrome瀏覽器支援最為完整。建議大家使用較新版本的Chrome。
  2. IE9以下不支援
  3. IE9,10,11存在以下問題
    1. 不支援離線功能
    2. IE9不支援檔案匯入匯出
    3. IE10不支援拖拽檔案匯入
  1. 這裡是 腳註內容.