㈠ 在c語言中,如何構造一個空的順序線性表,然後怎麼用
#include<stdio.h>
#define MAXSIZE 100
struct List
{
int L[MAXSIZE];
int top;
};
int Init()//橘蘆top指針初始化為0
{
int top;
top=0;
return top;
}
void Input(struct List *t,int p,int n)//輸入n個數據
{
if(n==0||n>=MAXSIZE)printf("空隊列\n");
else
for(p=0;p<n;p++)
scanf("%d",&t->L[p]);
}
void Output(struct List *s,int i,int m)//閉租輸出m(=n)個數據哈
{
if(m==0||m>圓態帶=MAXSIZE)printf("無法輸出\n");
else
for(i=0;i<m;i++)
printf("%d ",s->L[i]);
}
void main()
{
struct List r;
int n,m;
scanf("%d",&n);
m=Init();
Input(&r,m,n);
Output(&r,0,n);
}
㈡ c語言順序表的創建程序
/*
*程序不足之處:1,main函數不應該為 void main
* 2,創建空的順序表函數中 sqlist L;//定義順序表L L是局部變數,
函數結束即銷毀,應該用指針代替
* 3,SqList CreateList(SqList L) //創建順序表(非空)函數中:
scanf("%d",&L.elem); L裡面的elem本來就是地址,
沒必要再加&符號,且每次輸入都一直放在首地址,
沒達到程序所要表達的意思
* 4,void print(SqList L) //輸出當前順序表 函數中:
printf("%-3d",L.elem); 和上面是一樣的道理
* 5,main函數中沒有將申請的內存釋放
*現將程序稍作修改如下,望採納
*/
#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define Icreament 20
typedef int ElemType; //用戶自定義數據元素類型
typedef struct
{
ElemType *elem; //順序表的基地址
int length; //順序表的當前長度
int listsize; //預設空間容量
}SqList; //線性表的順序存儲結構
SqList* InitList() //創建空的順序表
{
SqList* L = (SqList*)malloc(sizeof(SqList));//定義順序表L
if(!L)
{
printf("空間劃分失敗,程序退出
");
return NULL;
}
L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L->elem)
{
printf("空間劃分失敗,程序退出
");
return NULL;
}
L->length=0;
L->listsize=LIST_INIT_SIZE;
return L;
}
int CreateList(SqList* L) //創建順序表(非空)
{
int number; //順序表中元素的個數
int i; //循環變數
printf("請輸入順序表中元素的個數:");
scanf("%d",&number);
if(number > LIST_INIT_SIZE)//一定要判斷輸入的個數是否大於順序表的最大長度
{
printf("輸入個數大於順序表的長度
");
return 0;
}
for(i=0;i<number;i++)
{
printf("輸入第%d個數: ",i+1);
scanf("%d",L->elem+i);//L->elem+i:每次的輸入都保存在順序表元素中的下一個地址,而不是一直放在元素的首地址
}//給順序表中每個數據元素賦值
L->length=number; //當前順序表的長度
return 1;
}
void print(SqList* L) //輸出當前順序表
{
int i;
for(i=0;i<L->length;i++)
{
printf("%-3d",*(L->elem + i));//L->elem+i:和輸入是一個道理
}
printf("
");
}
int main()
{
SqList* L = InitList();//申請一個指向順序表的指針,並對其初始化
if(!L)//判斷申請是否成功
{
printf("初始化線性表失敗
");
return 1;
}
if(!CreateList(L))//判斷創建順序表是否成功
{
printf("創建順序表失敗
");
return 1;
}
print(L);//列印順序表
free(L->elem);//釋放申請的順序表元素的內存
free(L);//釋放申請的順序表內存
return 0;
}
運行效果如圖:
㈢ 數據結構c語言版 創建一個順序表
http://blog.csdn.net/xuhang0910/article/details/48488881
線性表缺寬順序存儲譽扮逗慶賣基礎
㈣ c語言建立空順序表
從答游貼上來的代碼看不出有什麼問題,下面提兩條建議:
1、作為鏈表數據類型,其內部應該有一個預先定義大小的數升咐組,你這里用int *elem,這只是一個指針,你是否打算在需要時再申請動態內存空間?
2、鏈表數據&L作為函吵舉純數實參是什麼意思?應該是*L才對,而作為函數形參,*L是錯的,而&L是對的。請體會!
㈤ 如何用C語言建立空順序表,只要一個空表,求大神給串完整的代碼,能運行的,謝謝
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<memory.h>
constintMAXSIZE=檔岩漏20;//表長
typedefintDataType;
typedefstructlist{
DataTypedata[MAXSIZE];
intsize;
}SqList;
intmain(){
SqListaL;//聲明一個表
inti,j,flag;
DataTypex;
memset(aL.data,0,MAXSIZE);//表元素清零
aL.size=0;
srand((unsigned)time(NULL));
for(i=0;i<MAXSIZE;行爛++i){
x=rand()%100+1;
flag=1;
for(j=0;j<aL.size&&flag;++j)
flag=(aL.data[j]!=x);
if(flag==0)--i;
else{
aL.data[aL.size]=棗鄭x;
++aL.size;
}
}
for(i=0;i<aL.size;++i)
printf("%d",aL.data[i]);
printf(" ");
return0;
}
㈥ 如何建造一個空的順序表然後再向裡面插入數據和C語言。
可以在pandas中創建一個空DataFrame的方法,類似於創建了一個空字典,之後向裡面插入數據
㈦ C語言建立順序表
#include"iostream.h"
#include"malloc.h"
#include"stdio.h"
#define MAX_LIST_SIZE 100
typedef int elemtype;
typedef struct Node
{
elemtype *data;
int length;
int listsize;
}SqList;
void InitList(SqList &L)
{
L=(SqList *)malloc(MAX_LIST_SIZE*sizeof(SqList));
L->length=0;
L->listsize=MAX_LIST_SIZE;
}
void Insert(SqList &L,int i,elemtype x)
{
int k;
for(k=L->length;k>=i;k--)
*L->data[k+1]=*L->data[k];
*L->data[k]=x;
}
void Print(SqList L)
{
for(int i=0;i<L->length;i++)
cout<<*L->data[i]<<" ";
}
void main()
{
elemtype e;
int n;
SqList *L;
InitList(L);
cout<<"輸入你要插入的元素:"<<endl;
cin>>e;
cout<<"輸入你要插入的位置:"<<endl;
cin>>n;
Insert(L,n,e);
Print(L);
}
這里就簡要的寫了下第一小問,時間問題,沒有調試,你自己看看
其實網上這方面的資料很多的,你可以網路一下
㈧ 用C語言編寫一個有關順序表的程序代碼
#include<stdio.h>
#include<stdlib.h>
#define Size 50
//定義順序表結構體類型
typedef struct Table{
int*head;//順序表頭指針,為整型
int length;//順序表中元素個數
int size; //順序表的長度
}Table;
//創建順序表
Table CreateTable(){
Table T;
if(!(T.head=(int*)malloc(Size*sizeof(int)))){
printf("內存分配錯誤!\n");
exit(0);
}
T.size=Size;
T.length=0;
return T;
}
//增加
void Insert(Table T,int set,int values)//set為插入的位置,values為值
{
//首先判斷插入位置是否正確
if(set<0||set>T.length){
printf("插入位置不正確!\n");
reutrn;
}
//判斷是否有足夠的內存空間存儲增加的數
if(T.length==T.size){
if(!(T.head=(int*)realloc(T.head,(T.size+10)*sizeof(int)))){
printf("內存分配錯誤!\n");
exit(0);
}
T.size+=10;
}
//插入數據
for(int i=s.length;i>set;i--)
T.head[i]=T.head[i-1];
T.head[set]=values;
T.length++;
}
//刪除
void Delete(Tabel T,int set)
{
if(set<0||set>=T.length)
{
printf("刪除數的位置不爭確,刪除失敗!\n");
return;
}
//輸出數據
for(int i=set;i<s.length;i++)
T.head[i]=T.head[i+1];
T.length--;
}
//查找
int Search(Tabel T,int value)
{
for(int i=0;i<T.length;i++)
if(T.head[i]==value)
return i;
return -1;
}
㈨ 用C語言創建一個順序表並完成插入等操作
/*
GY52122008
請輸入插入字元 : -
請輸入插入位置 : 7
GY5212-2008
Press any key to continue
*/
#include<malloc.h>
#include<stdio.h>
#include<string.h>
#definemaxsize100
typedefstruct{
char*data;
intlength;
}sqlist;
voidinitlist(sqlist*&L){//初始化順序表
L=(sqlist*)malloc(sizeof(sqlist));
L->data=(char*)malloc(maxsize);
L->length=0;
}
voidcreatelist(sqlist*&L,chara[],intn){//建立順序表
inti;
for(i=0;i<n;i++)L->data[i]=a[i];
L->length=n;
}
boollistinsert(sqlist*&L,inti,chare){//插入數據元素
intj;
if(i<1||i>L->length+1)returnfalse;
i--;
for(j=L->length;j>i;j--)L->data[j]=L->data[j-1];
L->data[i]=e;
L->length++;
returntrue;
}
boollistdelete(sqlist*&L,inti,char&e){//刪除數據元素
intj;
if(i<1||i>L->length)returnfalse;
i--;
e=L->data[i];
for(j=1;j<L->length-1;j++)L->data[j]=L->data[j+1];
L->length--;
returntrue;
}
intlistlength(sqlist*L){//求線性表長度
return(L->length);
}
voiddestroylist(sqlist*&L){
free(L);
}
intlocateelem(sqlist*L,chare){//按元素查找
inti=0;
while(i<L->length&&L->data[i]!=e)i++;
if(i>=L->length)return0;
elsereturni+1;
}
voiddisplist(sqlist*L){//輸出線性表
inti;
for(i=0;i<L->length;i++)printf("%c",L->data[i]);
printf(" ");
}
intmain(){
intpos,len;
charch,data[50]="GY52122008";
sqlist*L;
initlist(L);//先初始化
len=strlen(data);
createlist(L,data,len);//創建表
displist(L);
printf("請輸入插入字元:");
scanf("%c",&ch);
printf("請輸入插入位置:");
scanf("%d",&pos);
if(listinsert(L,pos,ch))displist(L);
elseprintf("插入操作失敗。 ");
free(L->data);
free(L);
return0;
}
㈩ 是C語言中建立順序表的程序
C語言中建立順序表的操作順序如下:
1.清空順序表:其實清空只不過將元素長度置0,讓後面插入數據函數的長度從0開始,其實並不是真正清空,之前的數據元素在內存中還存在,只不過可以被新元素覆蓋而已。
2.判斷順序表是否為空