1. 程式人生 > >自己寫的順序表的基本操作,插入、刪除、修改,給出完整程式碼,其中運用到goto語句

自己寫的順序表的基本操作,插入、刪除、修改,給出完整程式碼,其中運用到goto語句

#include<iostream>
using namespace std;
#define MAXSIZE 100
typedef int DataType;
typedef struct
{
DataType data[MAXSIZE]; //通常用一位陣列來描述順序表的資料儲存
int SeqLength; /*線性表長度*/
} SeqList;


SeqList *Init_SeqList()//順序表的初始化演算法,將順序表清空
{
SeqList *L;
L = new SeqList;
L->SeqLength = 0; /*長度置為-1*/
return L;
}
void Define_SeqList(SeqList *L)//順序表的定義演算法
{
cout << "請輸入順序表的長度:" << endl;
int n;
cin >> n;
cout << "請依次輸入順序表中要儲存的元素:" << endl;
for (int i = 0; i<n; i++)
{
cin >> L->data[i]; //輸入陣列元素
L->SeqLength++;
}
}
void Display_SeqList(SeqList *L)//順序表的輸出演算法
{
cout << "順序表中儲存的元素為" << endl;
int i;
for (i = 0; i < L->SeqLength; i++)
{
cout << L->data[i] << " ";
}
cout << endl;
}
void GetData_SeqList(SeqList *L)//按照序號查詢元素
{
flag://flag1
cout << "你想尋找第幾個元素?";
int i;
cin >> i;
if (i > L->SeqLength)
{
cout << "超出順序表的長度!請重新輸入!"<<endl;
goto flag;//flag1
}
cout << "第"<<i<<"個元素是:";
cout << L->data[i - 1]<<endl;
}
void GetNumber_SeqList(SeqList *L)//輸出指定元素的序號
{
cout << "輸入你想尋找的元素:" << endl;
int n;
int i = 0;
cin >> n;
while (n!=L->data[i]&&i<=L->SeqLength-1)
{
i++;
}
if (i<L->SeqLength - 1)
cout << "你想尋找的元素" << n << "在順序表中第" << i + 1 << "位" << endl;
else if (n != L->data[i])
{
cout << "你想尋找的元素不在順序表中" << endl;
}
}
void Insert_SeqList(SeqList *L)//插入元素到指定位置
{
int n, m;
flag://flag2
cout << "輸入你想插入的位置"<<endl;
cin >> m;
if (m > L->SeqLength+1||m<1)//首先判斷插入位置是否合法
{
cout << "不在順序表範圍內!請重新選擇位置!";
goto flag;//flag2
}
cout << "輸入你想插入的元素" << endl;
cin >> n;
if (m == L->SeqLength+1)
{
L->SeqLength++;
L->data[m-1] = n;
}
else
{
for (int i = L->SeqLength - 1; i > m - 2; i--)
L->data[i + 1] = L->data[i];
L->data[m-1] =n ;
L->SeqLength++;
}
}
void Delete_SeqList(SeqList *L)//刪除指定序號的元素
{
flag://flag3
cout << "輸入你想刪除第幾個元素"<<endl;
int n;
cin >> n;
if (n<1 || n>L->SeqLength)
{
cout << "超出順序表範圍,請重新選擇" << endl;
goto flag;//flag3
}
if (n == L->SeqLength)
{
L->data[n - 1] = 0;
L->SeqLength--;
}
else
{
for (int i = n - 1; i < L->SeqLength;i++)
L->data[i] = L->data[i + 1];
L->data[L->SeqLength-1] = 0;
L->SeqLength--;
}
}
void Updata_SeqList(SeqList *L)//修改順序表中指定序號對應的的元素
{
flag:
cout << "你想修改第幾個元素"<<endl;
int n;
cin >> n;
if (n<1 || n>L->SeqLength - 1)
{
cout << "超出順序表範圍,請重新選擇" << endl;
goto flag;
}
cout << "請輸入修改的元素"<<endl;
int m;
cin >> m;
L->data[n - 1] = m;
}
int main()
{
SeqList *L;//順序表的定義
L = Init_SeqList();//順序表的初始化
Define_SeqList(L);//定義順序表
fflush(stdin);//清空輸入緩衝區,作用是防止多輸入資料導致錯誤
flag://flag4
cout<<"*------------------------------------------------------*"<<endl;//從這開始選擇功能
cout << "請選擇功能:" 
<< endl << "1.輸出指定序號元素" 
<< endl << "2.輸出指定元素的序號"
<< endl << "3.刪除指定序號的元素" 
<< endl << "4.插入元素到指定位置" 
<< endl << "5.輸出順序表"
<< endl << "6.修改指定序號對應的元素"
<< endl << "0.退出程式" << endl;
int s;
cin >> s;
switch (s)
{
case 1:GetData_SeqList(L); break;//輸出指定序號的元素
case 2:GetNumber_SeqList(L); break;//輸出指定元素的序號
case 3:Delete_SeqList(L); break; //刪除指定序號的元素
case 4:Insert_SeqList(L); break; //插入元素到指定位置
case 5:Display_SeqList(L); break;//順序表的輸出
case 6:Updata_SeqList(L); break;//修改指定序號對應的元素
default:cout << "謝謝使用!";
break;
}
cout << "是否繼續使用順序表其他功能?1 for 是;2 for 否"<<endl;
int ss;
cin >> ss;
if (ss == 1)
{
goto flag;//flag4
}
system("pause");
return 0;
}

相關推薦

自己順序基本操作插入刪除修改完整程式碼其中運用goto語句

#include<iostream> using namespace std; #define MAXSIZE 100 typedef int DataType; typedef struct {DataType data[MAXSIZE]; //通常用一位陣列

1.順序基本操作

空間 sql註入 表達 pan 專業 truct 優點 length 理解 (ps上了大學,一開始不知道自己專業是學編程的,等到半路知道自己是學編程的時候,又不知道到底該怎麽學,該學什麽。一直處於一個很尷尬的境地。 大一的時候玩了玩pangolin,學了html和一點點ja

順序基本操作的實現

oid new for fine h+ 基本 delet 輸出 turn 順序表基本操作的實現,主要包括順序表的初始化、建立、輸出、插入、刪除、位置查詢、數據查詢。 #include<iostream.h>#define MAXSIZE 100typedef i

6-1 順序基本操作 (10 分)

本題要求實現順序表元素的增、刪、查詢以及順序表輸出共4個基本操作函式。L是一個順序表,函式Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在順序表的pos位置插入一個元素e(pos應該從1開始),函式Status ListDelete_Sq(S

6-2 順序基本操作 (10 分)

6-2 順序表基本操作 (10 分) 本題要求實現順序表元素的增、刪、查詢以及順序表輸出共4個基本操作函式。L是一個順序表,函式Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在順序表的pos位置插入一個元

順序基本操作(c實現)

順序表就是以陣列形式儲存的線性表,本文將在PTA上做過的題的程式碼copy下來,供以參考,詳解見註釋 //庫函式標頭檔案包含 #include<stdio.h> #include<malloc.h> #include<stdlib.h>

資料結構—順序基本操作(c語言程式碼

順序表計算機內部儲存一張線性表是用一組連續地址記憶體單元,這種儲存結構即為順序儲存結構,這種結構下的線性表叫順序表。順序表有兩種定義方法:                                    1.靜態定義                           

資料結構演算法實現-順序基本操作

資料結構演算法實現 實現了高一凡的<<資料結構>>,書中的程式碼是基於VC6++ c++語言實現的,網上也可以找到TC版的c語言實現的原始碼,TC版的原始碼平臺是 Turbo C 2.0 ,編譯軟體相對較早,因此將採用CodeBlock

老師要我們單鏈基本操作。。。

sca 單鏈表 基本操作 des tde length pre != putchar #include<stdio.h>#include<stdlib.h>#define FALSE 0 #define TRUE 1 typedef int Dat

Java單鏈基本操作(六)--刪除重複節點;

package listnode; public class DeleteDuplecate_SingleList { public static void main(String[] arg

C++ 單鏈表基本操作分析與實現 連結串列   連結串列是一種物理儲存單元上非連續順序的儲存結構資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點(連結串列中每一個元素稱為結點)組成

連結串列   連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。連結串列由一系列結點(連結串列中每一個元素稱為結點)組成,結點可以在執行時動態生成。每個結點包括兩個部分:一個是儲存資料元素的資料域,另一個是儲存下一個結點地址的指標域。 相比於線性表

(1)順序表操作 ① 輸入一組整型元素序列建立線性順序儲存結構。 ② 實現該線性的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素否則顯示查詢失敗。 ④ 在該順序表刪除插入

(1)順序表的操作 ① 輸入一組整型元素序列,建立線性表的順序儲存結構。 ② 實現該線性表的遍歷。 ③ 在該順序表中查詢某一元素,查詢成功顯示查詢元素,否則顯示查詢失敗。 ④ 在該順序表中刪除或插入指定元素。 ⑤ 建立兩個按值遞增有序的順序表,將他們合併成一個按值遞增有序的

C#.NET 程序員的福利自己的一個XML操作可實現像jquery一樣方便的xml操作且不用專門去處理命名空間。

console region ignorecas node 處理 命名空間 void clone 一個 此工具是進入一家新公司之後實現的,主要是工作當中操作 xml 的時間太多,因為公司按任務計“工作量”,領導給我安排的時間遠遠不夠完善此工具【悲哀的

線性順序存儲結構元素的獲取插入刪除

數據結構 線性表 順序存儲結構 對於線性表,我們可以對其元素進行簡單的獲取,插入以及刪除操作。 先來講講元素的獲取操作,完整來講,就是對,將線性表L第i個位置的元素返回,若成功,則返回1,且將第i個位置的元素的值賦給*e;若失敗,則返回0。代碼如下:int GetEl

C++|STL學習筆記-map的基本操作插入刪除遍歷大到小輸出)【仿大佬寫法】

首先的程式碼是插入,刪除,遍歷 執行截圖如下: 原始碼如下: #include <map> #include <iostream> #include <algorithm> using namespace std; typedef pair

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

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

C語言順序插入刪除查詢操作實現

//順序表的插入、刪除、查詢操作實現 #include<stdio.h> #include<stdlib.h> #define InitSize 10 #define MaxSize 50 //#define bool int //#define

mysql——我自己的兩張插入刪除更新)同時進行的(觸發器)例項

資料庫如下: <span style="font-size:18px;">create database mytest; use mytest; DROP TABLE IF EXISTS `user1`; CREATE TABLE `user1` ( `i

資料結構 線性連結串列的創立及其基本操作初始化遍歷銷燬判空刪除插入

最近寫了個數據結構的單鏈表,其中包括十來個基本操作演算法,包括了建立單鏈表、刪除、插入、定位、遍歷等基本的操作。在VS上運行了一下,可以通過,感覺還不錯,和大家分享一下! 我是建立了一個C++專案,在專案下寫的,你們也可以建立專案把下面的東西複製到編譯器上試試! 第一部分是

數據結構--Avl樹的創建插入的遞歸版本和非遞歸版本刪除操作

pop end eem static cout 遞歸 sta div else AVL樹本質上還是一棵二叉搜索樹,它的特點是: 1.本身首先是一棵二叉搜索樹。 2.帶有平衡條件:每個結點的左右子樹的高度之差的絕對值最多為1(空樹的高度為-1)。 也就是說,AV