實驗一 線性表的順序表示與實現
#include <stdio.h> #include <stdlib.h> #include <iostream> #define OVERFLOW -2 #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 1000 #define Elemtype int// typedef int Elemtype typedef struct { Elemtype *elem; int length; int listsize; }sqlist; int InitList_Sq( sqlist & L,int n ) { // n=0時建立空表 L.elem = (Elemtype*)malloc(LIST_INIT_SIZE*sizeof (Elemtype)); if (!L.elem) exit(OVERFLOW); L.length =n; L.listsize = LIST_INIT_SIZE; return OK; }//最後,對建立的順序表設計插入、刪除、查找等基本操作的算法如下: int ListInsert_Sq(sqlist &L, int i, Elemtype e) { int LISTINCREMENT=i,*q,*p; // 在順序表L的第 i 個元素之前插入新的元素e if (i < 1 || i > L.length+1) return ERROR; if (L.length >= L.listsize) { int *newbase = (Elemtype *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof (Elemtype)); if (!newbase) exit(OVERFLOW); L.elem = newbase; L.listsize += LISTINCREMENT; } q = &(L.elem[i-1]); for (p = &(L.elem[L.length-1]); p >= q; --p) *(p+1) = *p; *q = e; ++L.length; return OK; } int ListDelete_Sq (sqlist &L, int i, Elemtype &e) { //刪除算法 Elemtype *p,*q; if ((i < 1) || (i > L.length)) return ERROR; p = &(L.elem[i-1]); e = *p; q = L.elem+L.length-1; for (++p; p <= q; ++p) *(p-1) = *p; --L.length; return OK; } int locate_sq(sqlist L ,Elemtype x) //查找算法 { int i; for(i=0;i<L.length;i++) if(L.elem[i]==x) return i+1; return 0; } int main() { sqlist l; int n,num,i,x,e; scanf("%d",&n); InitList_Sq(l,n); for (i=1;i<=n;i++) { scanf("%d",&num); ListInsert_Sq(l,i+1,num); } for (i=1;i<=n;i++) printf("%d ",*(l.elem+i)); printf("\n"); scanf("%d",&x); ListDelete_Sq (l, x,e); for (i=1;i<n;i++) printf("%d ",*(l.elem+i)); printf("\n"); scanf("%d",&x); printf("%d\n",locate_sq(l,x)-1); return 0; }實驗一 線性表的順序表示與實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Java 自動識別文本文件字符編碼工具類
Java 自動識別文本文件字符編碼工具類測試用例2/** * @author Mr.superbeyone * @project cs-sys
superbeyone
2020-07-06 14:34:03
回望2015年看過的書,2016需要看的經典書
xuzhenlei1234
2020-06-30 08:10:45
用於Firefox的Google工具欄Beta 2發佈
lithe
2020-06-26 09:15:50
在VS後臺接收GridView中綁定的數據
x415831943
2020-06-25 22:20:31
數據庫操作類SQLHelper
x415831943
2020-06-25 22:20:21
除了上帝就是我 我是穆里尼奧
iteye_17318
2020-06-25 04:51:21
ELK不能查詢日誌報錯:index read-only
凭果子认树
2020-06-24 14:51:24
burpsuite得證書導到手機上安裝後依然無法訪問網絡原因
百物易用是苏生
2020-06-24 13:24:50
python requests模塊給發送參data默認就會urllib.parse.quote_plus進行編碼,無需自己手動處理
百物易用是苏生
2020-06-24 13:24:50
多平臺寫作,空閒時同步!
百物易用是苏生
2020-06-24 13:24:39
Captive Portal - 連接WiFi自動彈出認證頁面
神农民
2020-06-20 20:03:03
虛擬主機 VPS 雲服務器的區別
神农民
2020-06-20 19:05:13
關於ABI OABI EABI
神农民
2020-06-20 19:05:02