1. 程式人生 > >用頭插、尾插、按順序插入建立一個不帶頭節點的連結串列,棧的基本操作

用頭插、尾插、按順序插入建立一個不帶頭節點的連結串列,棧的基本操作

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 10
  5. typedefstruct Node  
  6. {  
  7.     int data;  
  8.     struct Node *next;  
  9. }Node, *pNode;  
  10. /*尾插法*/
  11. void create_list_rear(pNode *h)  
  12. {  
  13.     srand(time(NULL));  
  14.     pNode p, q;  
  15.     p = q = *h = (pNode)calloc(1,sizeof
    (Node));  
  16.     p->next = NULL;  
  17.     int count = 0;  
  18.     while (count!=N){  
  19.         ++count;  
  20.         if (count == 1){  
  21.             p->data = rand()%100;  
  22.             printf("%d ", p->data);  
  23.         }  
  24.         else{  
  25.             p = (pNode)calloc(1, sizeof(Node));  
  26.             p->data = rand() % 100;  
  27.             printf("%d ",p->data);  
  28.             p->next = NULL;  
  29.             q->next = p;  
  30.             q = p;  
  31.         }  
  32.     }  
  33.     printf("\n");  
  34. }  
  35. /*頭插法*/
  36. void create_list_front(pNode *h)  
  37. {  
  38.     pNode p;  
  39.     p = *h = (pNode)calloc(1,sizeof(Node));  
  40.     p->next = NULL;  
  41.     int count = 0;  
  42.     while (count != N){  
  43.         ++count;  
  44.         if (count == 1){  
  45.             p->data = rand() % 100;  
  46.             printf("%d ", p->data);  
  47.         }  
  48.         else {  
  49.             p = (pNode)calloc(1,sizeof(Node));  
  50.             p->data = rand() % 100;  
  51.             printf("%d ", p->data);  
  52.             p->next = *h;  
  53.             *h = p;  
  54.         }  
  55.     }  
  56.     printf("\n");  
  57. }  
  58. /*順序插入法*/
  59. void create_list_sequence(pNode *h)  
  60. {  
  61.     pNode p, q, r=NULL;  
  62.     p = q = *h = (pNode)calloc(1,sizeof(Node));  
  63.     p->next = NULL;  
  64.     int count = 0;  
  65.     while (count != N){  
  66.         ++count;  
  67.         if (count == 1){  
  68.             p->data = rand()%100;  
  69.             printf("%d ", p->data);  
  70.         }  
  71.         else{             
  72.             r = (pNode)calloc(1,sizeof(Node));  
  73.             r->data = rand() % 100;  
  74.             printf("%d ", r->data);  
  75. 相關推薦

    順序插入建立一個帶頭節點連結串列,基本操作

    #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 typedefstruct Node   {       int data;

    單向連結串列基本操作,刪除)

    由於最近剛寫完火車票的管理系統,裡面大量的用到了連結串列的部分,所以在這裡總結一下連結串列的幾種基本操作。 連結串列是什麼 要用連結串列首先要知道連結串列是什麼。簡單的說連結串列就是一串儲存資料的結構。說到這我們一定都會想到陣列,陣列也可以儲存資料,但是

    C++ 連結串列基本操作插入插入遍歷判斷連結串列是否為空清空求長度插入刪除逆置連結串列和排序

    // // main.cpp // List: // 連結串列的操作: // 1.頭插入 // 2.尾插入建立連結串列; // 3.遍歷連結串列; // 4.連結串列是否為空 // 5.清空連結串列 // 6.求連結串列的長度 // 7.

    連結串列基本操作插入,刪除,排序逆置等)

    連結串列是資料結構中最基本的,也是非常經典的,在面試筆試中也是經常出現的題,但是萬變不離其宗,只要掌握了基本的操作,一起盡在掌控。 特別要注意的一點是處理時千萬要把是否為頭進行判斷,做為一個特例,或者建立連結串列就先固定建立一個表頭,這樣程式碼就沒這麼多判斷了。 #i

    單鏈表的插入固定點)刪除(值刪一個值刪所有)

    連結串列的插入:主要包含三種,頭插、尾插、固定位置插。 頭插:首先建立新的結點,然後修改指標。讓新結點的pNext = 頭結點,再讓頭結點->新結點 尾插:先找到最後一個結點,並把它記錄下來,再把最後一個結點的pNext域指向新的結點 固定位置插: 給定結點插入,

    鏈式存儲(法)

    for 返回值 string.h 依據 類型 false 指向 status track #include "stdio.h" #include "string.h" #include "ctype.h"

    法的理解

    all adc lis err node != main eof ted /*************************************************************** Author :h-j-w Created Ti

    單鏈表的基礎操作插入和刪除)

    一、連結串列的建立(頭插法和尾插法) 1、頭插法:把後建立的結點插在頭部。用這種方法建立起來的連結串列的實際順序與輸入順序剛好向反,輸出時為倒序! 下面附上程式碼: struct node *headcreat() { struct node *p,*q,*head;

    給定陣列,建立帶頭節點)的單鏈表(法)

    一般有兩種常用的方法來建立單鏈表:頭插法與尾插法。 (1)頭插法:每次將新申請的節點插在頭節點的後面; 簡單來說,就是把新加進的元素放在表頭後的第一個位置: 首先,讓新節點的next指向頭節點之後

    C++類中單鏈表的實現(指定位置插入指定位置刪除連結串列長度清空連結串列連結串列排序)

    #include<iostream> using namespace std; class Node { public:Node():next(NULL){}Node(int n,Node *p = NULL):value(n),next(p){}int val

    再回首,資料結構——法建表

    最近在複習資料結構,順便看看大一的時候寫的程式碼,看完之後比當初有了更加深刻的體會。 //頭插法建表 void CreateListF (Node *l, int a[], int n) { No

    C語言連結串列:遍歷,,中間插入節點刪除,節點刪除,中間刪除的操作

    /****************************************************************************************************************************************

    單鏈表的基本操作 增刪查以及 法建表(初學)

    需要注意的:1.InitList(List &L)&是識別符號的作用 L和實參同一個引用 2.在每個方法中不能對頭結點操作 先把頭結點賦值一份 對副本引用操作 3.操作連結串列中間需要從頭結點開始一個個查詢,找到目標再插入 刪除 可以先寫查詢

    Python 進階—— list 的

                         list 最為常用的 append,其實執行的是尾插的概念。比如我們要新增的是一些外部資料來源(如它們可以是對一臺伺服器建立的連線),當我們欲實現最近優選的原則時,自然我們希望能夠反轉整個 list,如下程式碼演示:In [1]: cnt  = 10**5In [2]

    C語言:連結串列建立

    #include<stdio.h> #include<stdlib.h> struct list { int data; struct list *next; }; int i; void output(struct list *head);

    線性表基本操作

    線性表:順序表(陣列)、連結串列 棧:插入和刪除都限制在表的同一端進行(後入先出) 佇列:插入在一端,刪除在另一端(先進先出) 線性表基類: 增:append(val)   insert(p,val) 刪:delete(p) 改:setValue(p,

    【資料結構與演算法】之單鏈表雙鏈表迴圈連結串列基本介紹及其Java程式碼實現---第三篇

    一、連結串列的基本介紹 連結串列的定義:連結串列是一種遞迴的資料結構,它或者為空(null),或者是指向一個結點(node)的引用,該結點含有一個泛型的元素和一個指向另一條連結串列的引用。----Algorithms  Fourth  Edition   常見的連結串

    C語言指標連結串列與檔案操作詳解

    用兩個函式 Load_LinkList() 和 Save_LinkList() 讓連結串列與檔案操作結合,除了列印函式,其他都是在記憶體中操作連結串列,這樣寫更有條理,在建立連結串列時沒有采用書上的用一箇中間變數引導,並插入到結點前面,而是直接在連結串列尾的next申請記憶

    C 有結點連結串列的若干操作

    比無頭節點的要簡單很多 文章目錄 建立 輸出 訪問第i個元素 在i個位置前插入 刪除第i個元素 頭插 逆置 尾插 排序 兩個有序連結串列合併在一起,合併在一起的連結串列也要有序 找出連結串列中資料最大的節點

    opencv模仿matlab中的fspecial()函式建立一個自定義空間高斯濾波器模板

    模仿matlab裡的fspecial()函式,建立一個自定義空間高斯濾波器模板。 基本原理:二維高斯核函式的基本形式是這樣滴: 通常我們的座標都是x和y整數,要產生一個3x3的濾波器,我們要以中心為基礎取樣,這樣第一個值為(-1,-1),以後依次排序到(1,1)。這樣就可以產生一個mxn