1. 程式人生 > >C語言線性表的簡單建立和操作

C語言線性表的簡單建立和操作

留作學習參考

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100

typedef struct SqList *List; //建立一個結構體指標型別 指向結構體 
struct SqList
{
    int Data[MAXSIZE];//建立陣列  elementType是一個型別  elementType Data[MAXSIZE];
    int Last; //最後一個元素的位置 
} L; 


List MakeEmpty() ///初始化 建立空表 
{
    List list;
    list = (List)malloc
(sizeof(struct SqList)); list->Last = -1; //因為第一個元素是0,所以空表的最後一個元素就應該為-1 return list; } int Find(int X,List list) //查詢list中的某個元素 X的位置 { int i = 0; while(i<=list->Last && list->Data[i]!=X ) //小於最後一個元素位置,並且沒有和查詢的元素相等,查詢下一個 { i++; } if(i > list->Last) { return
-1 ; //I已經大於最後一個元素的位置,說明沒找到,返回-1 } else { return i ; //找到的位置 } } void Insert(int X,int i,List list) //在第i個位置插入 { int j; if(list->Last==MAXSIZE-1) //表滿了 { printf("表已經滿了"); return; } if(i<1||i>list->Last+2) //插入位置不對 { printf
("位置錯誤"); return; } for(j=list->Last;j>=i-1;j--) //移動騰出空位 { list->Data[j+1] = list->Data[j]; } list->Data[i-1] = X; //插入新元素 list->Last++; //指向新的最後一個元素位置 return; } void Delete(int i, List list) { int j; if(i<1||i>list->Last+1) //檢查位置 { printf("不存在第%d個元素",i); return; } for(j=i;j<=list->Last;j++) { list->Data[j-1] = list->Data[j]; //向前移動補空位 } list->Last--; //指向新的最後一個元素位置 return; } int main() { List list; list = MakeEmpty(); int i; list->Last = 9 ; for(i = 0;i<10;i++) { list->Data[i] = i ; } for(i = 0;i<10;i++) { printf("第%d個數字是%d",i,i); } }

相關推薦

C語言線性簡單建立操作

留作學習參考 #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef struct SqList *List; //建立一個結構體指標型別 指向結構體 s

C語言 線性操作~(未完)

#include <stdio.h> #include <malloc.h> typedef struct{ int *elem; //基地址 int length; int listsize; }Seqlist;//定義Seq這個新的資料

資料結構 筆記:線性的本質操作

線性表(List)的表現形式 -零個或多個數據元素組成的集合 -資料元素在位置上是有序排列的 -資料元素的個數是有限的 -資料元素的型別必須相同 線性表(List)的抽象定義 線性表是具有相同型別的n( >= 0)個數據元素的有限序列 線性表(List)的性質

c語言——線性之順序結構

#include <stdio.h> #include <stdlib.h> #include <conio.h> //線性表——順序儲存 #define LIST_INIT_SIZE 10 #define LISTINCREMENT 10 #define ERR

c語言--線性的順序儲存

實現線性表建立、插入、刪除、查詢和顯示線性表中元素等基本操作 #include "stdio.h" #include "malloc.h" #define MAXSIZE 200 //線性表允許的最大長度 #define datatype in

c語言--線性的鏈式儲存

#include "stdio.h" #include "malloc.h" #define datatype int #define ERROR 0 #define OK 1 typedef int ElemType; typedef struct no

C語言線性的順序儲存(一)各種新增刪除

順序儲存結構的處理 什麼是順序儲存結構? 順序儲存結構是儲存結構型別中的一種,該結構是把邏輯上相鄰的結點儲存在物理位置上相鄰的儲存單元中,結點之間的邏輯關係由儲存單元的鄰接關係來體現。檢視具體. 順序表的儲存示意圖 程式碼操作 初始化線性表 //初始化連結串

資料結構 C語言 線性 順序 實現2

話不多說,先上main函式流程圖 main流程圖方便看程式進行狀態。原本是想將所有的基礎資料結構寫完以後再傳的,可我等不及了,不寫點東西就感覺啥都沒做一樣。 將程式碼集中在一個檔案了,方便傳送和閱讀一些。 #include <stdio.h> #include <stri

資料結構 C語言 線性 順序 實現

#include<stdio.h> #include<stdlib.h > /* C提供三種預處理。巨集定義、檔案包含、條件編譯 。 巨集 定 義:又稱為巨集代換、巨集替換,簡稱“巨集”。巨集定義格式:#define 識別符號 字串 檔案包含:#include<***

C語言中棧的建立應用

棧的特點為: 先進後出(first in last out)。 棧中有兩個指標,棧頂指標和棧尾指標。其中,棧尾指標是不動的。用棧頂指標等於棧尾指標來判定棧是否為空。壓棧時,將棧頂指標+1,然後將資料存

C語言單鏈建立、插入、查詢、刪除、求長、排序、遍歷

1.定義連結串列節點 typedef struct Node { int data; struct Node *pNext; }NODE, *PNODE;2.連結串列的建立 PNODE crea

C語言中樹的建立遍歷

樹的遍歷分為三種:前序遍歷(根左右),中序遍歷(左根右),後序遍歷(左右根)。 PS:根左右,就是先遍歷根節點,然後是左子樹,最後是右子樹。如下圖: 前序遍歷:ABDECF。 中序遍歷:DBEACF

C語言連結串列的建立遍歷

        連結串列是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。連結串列有一個“頭指標”變數,以head表示,它存放一個地址。該地址指向一個元素。連

Mr.J--C語言頭函式的建立(附嚴薇敏《資料結構》線性程式碼)

  如何正確編寫 C 語言標頭檔案和與之相關聯的 c 源程式檔案 檢視此文章需要有一定的C語言程式設計基礎 首先就要了解它們的各自功能。要理解C 檔案與標頭檔案(即.h)有什麼 不同之處,首先需要弄明白編譯器的工作過程。 一般說來編譯器會做以下幾個過程: 1.預處理階段 2

資料結構c語言版 嚴蔚敏 順序線性12個基本操作及演算法的實現

標頭檔案: c1.h (相關標頭檔案及函式結果狀態程式碼集合) /* c1.h (程式名) */ #include<string.h> #include<ctype.h> #include<malloc.h> /

線性建立————C語言資料結構學習

#include <stdio.h> #include <malloc.h> #define MaxSize 50 typedef int ElemType; typedef struct { ElemType data[MaxSize];

順序建立初始化過程詳解(C語言實現)

順序表存放資料的特點和陣列這種資料型別完全吻合,因此順序表的實現使用的是陣列。需要注意的是,使用陣列實現順序表時,一定要預先申請足夠大的記憶體空間,避免因儲存空間不足,造成資料溢位,導致不必要的程式錯誤甚至崩潰。 在建立順序表時,除了預先申請記憶體空間,還需要實時記錄順序表的長度和順序表本身申請的記憶體大

c語言:順序的實現(一) 建立,插入,刪除,查詢,輸出等基本操作實現

#include<iostream> #include<stdio.h> #define LIST_INIT_SIZE 100 #define LIST_INCREMENT 10 using namespace std; struct Sqlist{

順序建立翻轉 C語言實現

 要把一個順序表就地逆置(輔助空間為o(1)),可以將表中的開始結點與終端結點互換,第二個結點和倒數第二個結點互換,如此反覆,就可以將整個表逆置了。 #include<stdio.h> #define ListSize 20 typedef int DataTy

oracle 檢視建立操作,建立簡單,複雜的檢視,建立不存在的檢視,檢視增刪改,檢視檢視的結構...

轉載:http://heisetoufa.iteye.com/blog/364864 檢視的概念   檢視是基於一張表或多張表或另外一個檢視的邏輯表。檢視不同於表,檢視本身不包含任何資料。表是實際獨立存在的實體,是用於儲存資料的基本結構。而檢視只 是一種定義,對應一個查詢語句。檢視的資料都來自於某些表,這