91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-12
  • 語言: C/C++
  • 標簽: 順序表??c語言??

資源簡介

首先,逐行讀取指定文件中的數(shù)據(jù),并進行解析后保存在順序表中。其中,文件中每行數(shù)據(jù)格式為“學號,姓名,年齡”,比如“SA10225048,[yyw1] 張三,24”。 (提示:采用順序表結(jié)構(gòu)時,順序表中每個表元素包含三類信息:學號,姓名,和年齡;采用單鏈表結(jié)構(gòu)時,單鏈表中每個結(jié)點的數(shù)據(jù)域包含三類信息:學號,姓名,和年齡。) 再,根據(jù)鍵盤輸入進行相關(guān)操作(查找,刪除和插入)。比如,若鍵盤輸入為“P3”,則表示打印出第3項的信息(注意:采用順序表結(jié)構(gòu)時,第3項數(shù)據(jù)對應下標為2的表元素;采用單鏈表結(jié)構(gòu)時,第3項數(shù)據(jù)對應鏈表中第3個結(jié)點的信息;);若鍵盤輸入為“D3”,則表示刪除第3個表元素;

資源截圖

代碼片段和文件信息

#include?“pch.h“
#include?
#include?
#include?
#include?

#define?filename?“C:\\Users\\lenovo\\source\\repos\\linearlist\\Lab1test.DAT“

#define?list_init_size?100???//線性表存儲空間的初始分配量
#define?LISTINCREMENT?10?????//線性表存儲空間的分配增量

typedef?int?Status;

typedef?struct
{
char?id[11]; //多1個char是結(jié)束符
char?name[20];
char?age[3];
}ElemType;

typedef?struct
{
ElemType?*elem;
int?length; //當前長度
int?listsize; //當前分配的存儲容量,sizeof(Elemtype)為單位
}Sqlist;


void?InitList_Sq(Sqlist?*L)?{
//構(gòu)造一個空的線性表L
L->elem?=?(ElemType?*)malloc(list_init_size?*?sizeof(ElemType));
if?(!L->elem) exit(-1); //存儲分配失敗
L->length?=?0; //空表長度為0
L->listsize?=?list_init_size; //初始存儲容量
}//Initlist_Sq

Status?ListInsert_Sq(Sqlist?*L?int?i?ElemType?e)?{
//在順序線性表L中下標為i的位置插入新的元素e,
//i的合法值為0<=i<=ListLength_Sq(L)-1
ElemType?*p?*q?*newbase; //定義指針
if?(i<0?||?i>L->length)?{
//printf(“插入位置不合理“);
return?0;
}//i值不合法
if?(L->length?>=?L->listsize)?{ //當前存儲空間已滿,增加分配
newbase?=?(ElemType?*)realloc(L->elem?(L->listsize?+?LISTINCREMENT)?*?sizeof(ElemType));
if?(!newbase)?{
//printf(“分配空間失敗“);
exit(-1);
}//存儲分配失敗
L->elem?=?newbase; //新基址
L->listsize?+=?LISTINCREMENT; //增加存儲容量
}
for?(int?j?=?L->length;?j?>?i;?j--)
L->elem[j]?=?L->elem[j?-?1];
L->elem[i]?=?e;
L->length++;
return?0;
}//ListInsert_Sq



Status?DeleteList_Sq(Sqlist?*L?int?i)
{
//?刪除順序表下標為i的元素
//ElemType?*p??*q?;
if?(L?==?NULL)
return?0;
if?(i??L->length?-?1)
return?0;
for?(int?j?=?i;?j?length?-?1;?j++)
L->elem[j]?=?L->elem[j?+?1];
L->length--;
return?0;
}

void?Outputall_Sq(Sqlist?*L)
{
int?i;
for?(i?=?0;?i?<=?L->length?-?1;?i++)?{
//printf(“%d?“?i?+?1);
printf(“%s?%s?%s\n“?L->elem[i].id?L->elem[i].name?L->elem[i].age);
}
}

void?Outputline_Sq(Sqlist?*L?int?i)
{
//刪除下標為i的元素
printf(“%s?%s?%s\n“?L->elem[i].id?L->elem[i].name?L->elem[i].age);

}

void?FiletoSqlist(Sqlist?*L)
{

FILE?*fp;
errno_t?err;
err?=?fopen_s(&fp?filename?“r“); //fopen_s打開成功返回0,失敗返回非0
char?ch;
if?(err?!=?0)?{ //是否打開成功判斷,必須加
printf(“Cant‘t?open?file“);
exit(0);
}

char?sztest[1000]?=?{?0?};
int?len?=?0ij=0;

while?(!feof(fp))?{
ElemType?e?=?{0};

評論

共有 條評論