老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

數據結構---線性表-創新互聯

劉佳瑜*,王越?*, 黃揚* , 張釗*

建網站原本是網站策劃師、網絡程序員、網頁設計師等,應用各種網絡程序開發技術和網頁設計技術配合操作的協同工作。創新互聯專業提供成都網站制作、網站建設,網頁設計,網站制作(企業站、成都響應式網站建設、電商門戶網站)等服務,從網站深度策劃、搜索引擎友好度優化到用戶體驗的提升,我們力求做到極致!

(淮北師范大學計算機科學與技術學院,安徽 淮北)

*These authors contributed to the work equllly and should be regarded as co-first authors.

🌞歡迎來到數據結構的世界?
🌈博客主頁:卿云閣

💌歡迎關注🎉點贊👍收藏??留言📝

🌟本文由卿云閣原創!

🙏作者水平很有限,如果發現錯誤,請留言轟炸哦!萬分感謝!


目錄

🍈?線性表的定義

🍉順序表

存儲結構

定義和初始化

插入

刪除

查找

🍊單鏈表

建立單鏈表

查找運算

插入運算

刪除運算

?編輯

求表長運算

🍋雙向鏈表?

🥥循環鏈表?

🍇靜態鏈表?


🍈?線性表的定義


🍉順序表 存儲結構

定義和初始化

靜態分配

#define MAXSIZE 10
typedef int DateType; 
typedef struct
{
  DateType data[MAXSIZE];
  int length;
}SqList;
void InitList(SqList &L)
{
  L.length=0;
}
int main() 
{
  SqList L;
  InitList(L);
  return 0;
}

動態分配

#include#include#define MAXSIZE 5       //MAXSIZE是根據實際問題定義的足夠大的整數常量
typedef int DataType;
typedef struct{ 
   DataType  *data;//定義了一個指針變量存放地址
   int  length; 
 }SqList;       //定義順序表類型
 
int main() {
 SqList L;
L.data=(DataType*)malloc(sizeof(DataType)*MAXSIZE);//在C++中也可以使用new,和delete
free(L.data);  //釋放空間
L.data=NULL;
  return 0;
}

增加數組空間的長度?

#include#include#define INITSIZE 10       
typedef int DataType;
typedef struct{ 
   DataType  *data;
   int  length; 
   int maxsize;
 }SqList;       //定義順序表類型
void InitSqList(SqList &L,int initsize)
{   printf("%d\n",initsize);
    L.data=(DataType *)malloc(sizeof(DataType )*initsize);
    L.length=0;
    L.maxsize=initsize;
}
//增加動態數組的長度
void IncreaseSize(SqList &L,int len)
{
  int *p=L.data;
  int i;
  L.data=(DataType *)malloc(sizeof(DataType )*(INITSIZE+len));
  for(i=0;i
插入

#include#define MAXSIZE 5       //MAXSIZE是根據實際問題定義的足夠大的整數常量
typedef int DataType;
typedef struct{ 
   DataType  data[MAXSIZE];
   int  length; 
 }SqList;       //定義順序表類型
void InitSqList(SqList &L)
{
    L.length=3;
    L.data[0]=0;
    L.data[1]=1;
    L.data[2]=3;
 
}
void InsertSqList(SqList &L,int  i,DataType  x)
{  int j; 
    if(L.length==MAXSIZE)
    {   printf("\n順序表是滿的,無法插入元素!");
        exit(1);
    } 
    if(i<1||i>L.length+1)
    {  printf("\n指定的插入位置不存在!");
        exit(1);
    } 
    for(j=L.length-1;j>=i-1;j--) 
        L.data[j+1]=L.data[j]; 
    L.data[i-1]=x;
    L.length++; 
}
int main() {
  SqList L;
  InitSqList(L);
  int i=3;
  int x=2;
  InsertSqList(&.L,i,x);
  return 0;
}
刪除

#include#include#define MAXSIZE 5       //MAXSIZE是根據實際問題定義的足夠大的整數常量
typedef int DataType;
typedef struct{ 
   DataType  data[MAXSIZE];
   int  length; 
 }SqList;       //定義順序表類型
void InitSqList(SqList &L)
{
    L.length=4;
    L.data[0]=0;
    L.data[1]=1;
    L.data[2]=4;
    L.data[3]=2;
}
void DeleteSqList(SqList &L,int  i)
{  int j;
  if(L.length==0) 
    {  printf("\n順序表是空的,無法刪除元素!");
        exit(1);
    }
    if(i<1||i>L.length)
    {  printf("\n指定的刪除位置不存在!");
        exit(1);
    }
    for(j= i;j< L.length;j++) 
        L.data[j-1]=L.data[j]; 
    L.length--; 
}

int main() {
  SqList L;
  InitSqList(L);
  int x=3;
  DeleteSqList(L,x);
  return 0;
}
查找

按位查找

#include#include#define MAXSIZE 5       //MAXSIZE是根據實際問題定義的足夠大的整數常量
typedef int DataType;
typedef struct{ 
   DataType  data[MAXSIZE];
   int  length; 
 }SqList;       //定義順序表類型
void InitSqList(SqList &L)
{
    L.length=4;
    L.data[0]=0;
    L.data[1]=1;
    L.data[2]=4;
    L.data[3]=2;
}
DataType GetElem(SqList L,int i)
{
  return L.data[i-1];
}

int main() {
  SqList L;
  int a;//接受查找到的元素
  InitSqList(L);
  a=GetElem(L,3);
  printf("this:%d",a);
  return 0;
}

按值查找

#include#define MAXSIZE 5       //MAXSIZE是根據實際問題定義的足夠大的整數常量
typedef int DataType;
typedef struct{ 
   DataType  data[MAXSIZE];
   int  length; 
 }SqList;       //定義順序表類型
void InitSqList(SqList L)
{
    L.length=4;
    L.data[0]=0;
    L.data[1]=1;
    L.data[2]=4;
    L.data[3]=2;
}
int  LocationSqList(SqList L, DataType x)
{ int i;
  for (i=0; i

🍊單鏈表

節點的結構

不帶頭結點的單鏈表

#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=NULL;
  return true;
}
bool Empty(LinkList L)
{
  return (L==NULL);
}
int main() 
{
  LinkList L;
  InitList(L);
  return 0;
}

帶頭結點的單鏈表

#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int main() 
{
  LinkList L;
  InitList(L);
  return 0;
}
建立單鏈表

頭插法

#define flag -1
#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int CreatLinkList(LinkList &L) 
{
	LNode *s;
	DataType x;
	int count=0;//記錄輸入的節點的個數 
	printf("請輸入第一個節點的值:\n");
	scanf("%d",&x);
	while(x!=flag)
	{
		s=(LinkList)malloc(sizeof(LNode));
		s->data=x;
		s->next=L->next;
		L->next=s;
		count++;
		printf("請輸入下一個節點的值:\n");
		scanf("%d",&x);
	}
	return count; 
}
void printLinkList(LinkList &L,int count)
{
	int i;
	LNode *s=L->next; 
	for(i=0;idata));
		s=s->next;
	}
}
int main() 
{
  printf("使用頭插法建立單鏈表\n");
  int count;
  LinkList L;
  InitList(L);
  count=CreatLinkList(L);
  printLinkList(L,count);
  return 0;
}

尾插法

#define flag -1
#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int CreatLinkList(LinkList &L) 
{
	LNode *s,*r;
	DataType x;
	int count=0;//記錄輸入的節點的個數 
	r=L;
	printf("請輸入第一個節點的值:\n");
	scanf("%d",&x);
	while(x!=flag)
	{
		s=(LinkList)malloc(sizeof(LNode));
		s->data=x;
		r->next=s;
		r=s;
		count++;
		printf("請輸入下一個節點的值:\n");
		scanf("%d",&x);
	}
	r->next=NULL;
	return count; 
}
void printLinkList(LinkList &L,int count)
{
	int i;
	LNode *s=L->next; 
	for(i=0;idata));
		s=s->next;
	}
}
int main() 
{
  printf("使用尾插法建立單鏈表\n");
  int count;
  LinkList L;
  InitList(L);
  count=CreatLinkList(L);
  printLinkList(L,count);
  return 0;
}

查找運算

按位查找&按值查找

#define flag -1
#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int CreatLinkList(LinkList &L) 
{
	LNode *s,*r;
	DataType x;
	int count=0;//記錄輸入的節點的個數 
	r=L;
	printf("請輸入第一個節點的值:\n");
	scanf("%d",&x);
	while(x!=flag)
	{
		s=(LinkList)malloc(sizeof(LNode));
		s->data=x;
		r->next=s;
		r=s;
		count++;
		printf("請輸入下一個節點的值:\n");
		scanf("%d",&x);
	}
	r->next=NULL;
	return count; 
}
void printLinkList(LinkList &L,int count)
{
	int i;
	LNode *s=L->next; 
	for(i=0;idata));
		s=s->next;
	}
}
LNode *GetLinkList(LinkList L,int i)
{
	LinkList p=L;
	int j=0;//表示當前查找的位置 
	while(p->next!=NULL&&jnext;
		j++;
	}
	return p;
 } 
 LNode *LocationLinkList(LinkList L,DataType x) 
{
	LinkList p=L->next;
	while(p->next!=NULL&&p->data!=x)
	{
		p=p->next;
	}
	return p;
 } 
int main() 
{
  printf("使用尾插法建立單鏈表\n");
  int count;
  LNode *p1,*p2;//接受查找的結果 
  LinkList L;
  InitList(L);
  count=CreatLinkList(L);
  printf("建立單鏈表如下\n");
  printLinkList(L,count);
  printf("查找第3個元素的值:\n");
  p1=GetLinkList(L,3);
  printf("查找第3個元素的值:%d\n",p1->data);
  printf("4在鏈表中的地址:\n");
  p2=LocationLinkList(L,4); 
  printf("4在鏈表中的地址%d\n",p2 );
  return 0;
}

插入運算

#define flag -1
#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int CreatLinkList(LinkList &L) 
{
	LNode *s,*r;
	DataType x;
	int count=0;//記錄輸入的節點的個數 
	r=L;
	printf("請輸入第一個節點的值:\n");
	scanf("%d",&x);
	while(x!=flag)
	{
		s=(LinkList)malloc(sizeof(LNode));
		s->data=x;
		r->next=s;
		r=s;
		count++;
		printf("請輸入下一個節點的值:\n");
		scanf("%d",&x);
	}
	r->next=NULL;
	return count; 
}
void printLinkList(LinkList &L,int count)
{
	int i;
	LNode *s=L->next; 
	for(i=0;idata));
		s=s->next;
	}
}
LNode *GetLinkList(LinkList L,int i)
{
	LinkList p=L;
	int j=0;//表示當前查找的位置 
	while(p!=NULL&&jnext;
		j++;
	}
	return p;
 } 
 LNode *LocationLinkList(LinkList L,DataType x) 
{
	LinkList p=L->next;
	while(p->next!=NULL&&p->data!=x)
	{
		p=p->next;
	}
	return p;
 } 
 void InsertLinkList(LinkList L,int i,DataType x)
 {
 	LNode *p,*s;
 	p=GetLinkList(L,i-1);
 	if (p==NULL)
 	{
 		printf("插入的位置不合法:\n");
 		exit(1);
	 }
	else
	{
	s=(LNode *) malloc(sizeof(LNode));
	s->data=x;
 	s->next=p->next;
 	p->next=s;	
	}

 }
int main() 
{
  printf("使用尾插法建立單鏈表\n");
  int count;
  LNode *p1,*p2;//接受查找的結果 
  LinkList L;
  InitList(L);
  count=CreatLinkList(L);
  printf("建立單鏈表如下\n");
  printLinkList(L,count);
  InsertLinkList(L,3,2);
  printf("插入2后的單鏈表如下:\n");
  printLinkList(L,count+1);
  return 0;
}

刪除運算

#define flag -1
#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int CreatLinkList(LinkList &L) 
{
	LNode *s,*r;
	DataType x;
	int count=0;//記錄輸入的節點的個數 
	r=L;
	printf("請輸入第一個節點的值:\n");
	scanf("%d",&x);
	while(x!=flag)
	{
		s=(LinkList)malloc(sizeof(LNode));
		s->data=x;
		r->next=s;
		r=s;
		count++;
		printf("請輸入下一個節點的值:\n");
		scanf("%d",&x);
	}
	r->next=NULL;
	return count; 
}
void printLinkList(LinkList &L,int count)
{
	int i;
	LNode *s=L->next; 
	for(i=0;idata));
		s=s->next;
	}
}
LNode *GetLinkList(LinkList L,int i)
{
	LinkList p=L;
	int j=0;//表示當前查找的位置 
	while(p!=NULL&&jnext;
		j++;
	}
	return p;
 } 
 LNode *LocationLinkList(LinkList L,DataType x) 
{
	LinkList p=L->next;
	while(p!=NULL&&p->data!=x)
	{
		p=p->next;
	}
	return p;
 } 
 void InsertLinkList(LinkList L,int i,DataType x)
 {
 	LNode *p,*s;
 	p=GetLinkList(L,i-1);
 	if (p==NULL)
 	{
 		printf("插入的位置不合法:\n");
 		exit(1);
	 }
	else
	{
	s=(LNode *) malloc(sizeof(LNode));
	s->data=x;
 	s->next=p->next;
 	p->next=s;	
	}

 }
 void DeleteLinkList(LinkList L,int i)
 {
 	LNode *p,*q;
 	p=GetLinkList(L,i-1);
 	if (p==NULL)
 	{
 		printf("刪除的位置不合法:\n");
 		exit(1);
	 }
	else
	{
	  if(p->next==NULL) 
	  	{
 		printf("刪除的位置不合法:\n");
 		exit(1);
	   }
	   else
	   {
	   	q=p->next;
	   	p->next=p->next->next;
	   	free(q);
	   }
	}
 }
int main() 
{
  printf("使用尾插法建立單鏈表\n");
  int count;
  LNode *p1,*p2;//接受查找的結果 
  LinkList L;
  InitList(L);
  count=CreatLinkList(L);
  printf("建立單鏈表如下\n");
  printLinkList(L,count);
  InsertLinkList(L,3,2);
  printf("刪除第3個節點的單鏈表如下:\n");
  DeleteLinkList(L,3);
  printLinkList(L,count-1);
  return 0;
}
求表長運算
#define flag -1
#include#include#define MAXSIZE 5  
typedef int DataType;
typedef struct Node
{ 
    DataType  data;
    struct Node *next;
}LNode , *LinkList;
bool InitList(LinkList &L)
{
  L=(LNode *)malloc(sizeof(LNode));
  if (L==NULL)
      return false;
  L->next=NULL;
  return true;
}
bool Empty(LinkList L)
{
  if (L->next==NULL)
      return true;
  else
      return false;
}
int CreatLinkList(LinkList &L) 
{
	LNode *s,*r;
	DataType x;
	int count=0;//記錄輸入的節點的個數 
	r=L;
	printf("請輸入第一個節點的值:\n");
	scanf("%d",&x);
	while(x!=flag)
	{
		s=(LinkList)malloc(sizeof(LNode));
		s->data=x;
		r->next=s;
		r=s;
		count++;
		printf("請輸入下一個節點的值:\n");
		scanf("%d",&x);
	}
	r->next=NULL;
	return count; 
}
void printLinkList(LinkList &L,int count)
{
	int i;
	LNode *s=L->next; 
	for(i=0;idata));
		s=s->next;
	}
}
LNode *GetLinkList(LinkList L,int i)
{
	LinkList p=L;
	int j=0;//表示當前查找的位置 
	while(p!=NULL&&jnext;
		j++;
	}
	return p;
 } 
 LNode *LocationLinkList(LinkList L,DataType x) 
{
	LinkList p=L->next;
	while(p!=NULL&&p->data!=x)
	{
		p=p->next;
	}
	return p;
 } 
int LengthLinkList(LinkList L)
{
	int len=0;
	LNode *p=L;
	while(p->next)
	{
		len++;
		p=p->next;
	}
   return len;
}
int main() 
{
  printf("使用尾插法建立單鏈表\n");
  int count;
  int length;
  LNode *p1,*p2;//接受查找的結果 
  LinkList L;
  InitList(L);
  count=CreatLinkList(L);
  printf("建立單鏈表如下\n");
  printLinkList(L,count);
  length=LengthLinkList(L);
  printf("單鏈表的長度是%d\n",length);
  return 0;
}


🍋雙向鏈表?


?🥥循環鏈表?


?🍇靜態鏈表?

Institutional Review Board Statement: Not applicable.

Informed Consent Statement: Not applicable.

Data Availability Statement: Not applicable.

Author Contributions:All authors participated in the assisting performance study and approved the paper.

Conflicts of Interest: The authors declare no conflict of interest

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧


網頁名稱:數據結構---線性表-創新互聯
當前路徑:http://www.xueling.net.cn/article/djiigh.html
主站蜘蛛池模板: 国产婷婷色一区二区三区四区 | 日本欧美大码A在线观看 | 久久国产成人午夜av影院武则天 | 国产精品久久久久久久三级 | 国产精品久久高潮 | 免费久久视频 | a级毛片免费在线播放 | 国产一区二区久久久 | 插曲视频免费高清观看 | 日韩av在线网 | 无码人妻AⅤ一区二区三区麻豆 | 免费的又色又爽又黄的片捆绑美女 | 色欲aⅴ亚洲情无码AV蜜桃 | 久久精品国产久精国产果冻传媒 | 国产97成人亚洲综合在线观看 | 精品人妻无码av一区二区 | 国产综合精品一区二区三区 | 五月天最新网址 | 欧美日韩高清丝袜 | 极品美女扒开粉嫩小泬 | 最近2019中文字幕第二页 | 亚洲m码欧洲s码sss222 | 在线亚洲欧美日韩 | 男女啪啪免费观看网站 | 明星乱淫免费视频欧美 | 好想被狂躁无码视频在线观看 | 国产一区二区三级 | 绝顶高潮合集videos | 做爰吃奶全过程免费的网站 | 女人和拘做受全过程免费 | 午夜自产精品一区二区三区 | 国产精品偷伦视频免费手机播放 | 极品少妇xxxxⅹ免费视频 | 国产激情久久久久久 | 午夜无码片在线观看影院Y 韩国精品网站 | av大片在线看 | 日本一级片在线观看 | 午夜禁片| 99久久中文字幕三级久久日本 | 亚洲AⅤ无码精品色情午在线 | 亚洲有无码av在线播放 |