真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)結(jié)構(gòu)c語言查找函數(shù),從一組數(shù)據(jù)中查找數(shù)據(jù)c語言

C語言數(shù)據(jù)結(jié)構(gòu)求解

方法很多,可以在插入數(shù)據(jù)后再對線性表進(jìn)行刪改,也可以在插入前進(jìn)行處理。

十年的德清網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整德清建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“德清網(wǎng)站設(shè)計”,“德清網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

我這里代碼是在插入前處理。

(注釋掉的函數(shù)int getPNUM(struct Sqlist *st,int n);是我預(yù)留的,題2如果你想改成插入后,再對線性表素數(shù)進(jìn)行查找,可以用這個函數(shù)。否則可以刪除)。

#include stdio.h

#include stdlib.h

#include time.h

#define LIST_INIT_SIZE 800

struct Sqlist{

int *elem;

int length;

int listsize;

};

int insert2List(struct Sqlist *st,int num,int inx);//向線性表第inx個元素的位置插入一個元素。成功返回1,失敗返回0

int findNum(struct Sqlist *st,int num);//在線性表中查找指定數(shù)字,存在返回1,不存在返回0

//int getPNUM(struct Sqlist *st,int n);//查找素數(shù),返回第幾n個素數(shù)的下標(biāo)。未找到返回-1

void showList(struct Sqlist *st);//打印線性表

void clearList(struct Sqlist *st);//清空線性表

int main()

{

int i,k,nums[LIST_INIT_SIZE],n,num,cnt,flag;

struct Sqlist st={nums,0,LIST_INIT_SIZE};

srand(time(NULL));

//--------------題1-----------------------------------------------------------------------

n=100;

k=1;

printf("1、隨機(jī)生成100個【100,200】之間的隨機(jī)數(shù),去除重復(fù)并保存到線性表\n");

while(n--)

{

? num=rand()%101+100;

? printf("--%3d產(chǎn)生隨機(jī)數(shù)%d\n",k++,num);

? if(findNum(st,num))

? ? ? printf("該數(shù)字已在線性表中存在,重復(fù)去除\n");

? else

? {

? ? ? if(insert2List(st,num,st.length+1))

? ? ? ? ? printf("該隨機(jī)值已保存到線性表尾部\n");

? ? ? else{

? ? ? ? ? printf("異常!插入失敗!\n");

? ? ? ? ? return 1;

? ? ? }

? }

}

showList(st);

clearList(st);

//-------------題2----------------------------------------------------------------

n=20;

cnt=0;

k=1;

printf("1、隨機(jī)生成20個【1,200】之間的隨機(jī)數(shù),在第一個素數(shù)后插入1個0,第二個素數(shù)后插入2個0,以此類推,最后輸出所有元素\n");

while(n--)

{

? num=rand()%200+1;

? printf("--%3d產(chǎn)生隨機(jī)數(shù)%d\n",k++,num);

? flag=1;

? for(i=2;inum;i++)

? ? ? if(num%i==0)

? ? ? {

? ? ? ? ? flag=0;

? ? ? ? ? break;

? ? ? }

? if(flag)

? {

? ? ? cnt++;

? ? ? printf("該隨機(jī)值是一個素數(shù),在其尾部插入%d個0\n",cnt);

? ? ? for(i=0;icnt;i++)

? ? ? ? ? num*=10;

? ? ? printf("該隨機(jī)值變更為%d\n",num);

? }

? if(insert2List(st,num,st.length+1))

? ? ? printf("該隨機(jī)值已保存到線性表尾部\n");

? else{

? ? ? printf("異常!插入失敗!\n");

? ? ? return 1;

? }

}

showList(st);

return 0;

}

void clearList(struct Sqlist *st)//清空線性表

{

st-length=0;

printf("線性表數(shù)據(jù)已清除\n");

}

void showList(struct Sqlist *st)//打印線性表

{

int i;

printf("當(dāng)前線性表的數(shù)據(jù)為:\n");

for(i=0;ist-length;i++)

? printf("%d ",st-elem[i]);

printf("\n");

}

int findNum(struct Sqlist *st,int num)//在線性表中查找指定數(shù)字,存在返回1,不存在返回0

{

int *p=st-elem;

while(p=st-elem[st-length-1])

? if(*p++==num)

? ? ? return 1;

return 0;

}

/*

int getPNUM(struct Sqlist *st,int n)//查找素數(shù),返回第幾n個素數(shù)的下標(biāo)。未找到返回-1

{

int i,j,flag,cnt=0;

for(i=0;ist-length;i++)

{

? flag=1;

? for(j=2;jst-elem[i];j++)

? ? ? if(st-elem[i]%j==0)

? ? ? {

? ? ? ? ? flag=0;

? ? ? ? ? break;

? ? ? }

? if(flag)

? ? ? cnt++;

? if(cnt==n)

? ? ? return i;

}

return -1;

}

*/

int insert2List(struct Sqlist *st,int num,int inx)//向線性表第inx個元素的位置插入一個元素。成功返回1,失敗返回0

{

int i;

if(st-length==st-listsize)

{

? printf("線性表已滿,插入失??!\n");

? return 0;

}

if(inx1 inxst-length+1)

{

? printf("插入位置無效!線性表當(dāng)前數(shù)據(jù)長度為%d,插入位置必須大于1且不能大于%d!\n",st-length,st-length+1);

? return 0;

}

for(i=st-length;i=inx;i--)

? st-elem[i]=st-elem[i-1];

st-elem[inx-1]=num;

st-length++;

return 1;

}

數(shù)據(jù)結(jié)構(gòu) c語言版 ——順序表的查找、插入與刪除

#includestdio.h

#includestdlib.h

#define N 10 //順序表的最大容量

int length=0; //順序表的當(dāng)前元素個數(shù)

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

#define LIST_INIT_SIZE 100//線性表存儲的空間初始化分配量

#define LISTINCREAMENT 10 //線性表存儲空間的分配增量

typedef struct LNode//線性單鏈表存儲結(jié)構(gòu)

{

int data;

struct LNode *next;

}LNode,*LinkList;

int CreatList_L(LinkListL)//創(chuàng)建一個線性鏈表

{

L=(LinkList)malloc(sizeof(LNode));//分配一個空間給鏈表,作為頭結(jié)點(diǎn)

if(!L) exit(OVERFLOW);

L-next=NULL;

return OK;

}

int DestroyList_L(LinkList L)//銷毀鏈表

{

if(L) free(L);

return OK;

}

int ListInsert_L(LinkListL,int i,int e)//再練表的第i個元素前插入一個元素e

{

LinkList p=L;//p指針定位于i-1

LNode *s;

int j=0;

while(pji-1) {p=p-next;j++;}//定位

if(!p||ji-1) return ERROR;//如果i1或大于鏈表元素個數(shù)+1

s=(LNode*)malloc(sizeof(LNode));

if(!s) exit(OVERFLOW);

s-data=e; //完成插入操作

s-next=p-next;

p-next=s;

return OK;

}

int ListDelet_L(LinkListL,int i,inte)//刪除鏈表L中的第i個元素,并返回給e;

{

LinkList p=L;

LNode* q;

int j=0;

while(!pji-1) {p=p-next;j++;}//p指針定位于i-1;

if(!p-next||ji-1) return ERROR;

e=p-next-data; //完成刪除操作

q=p-next;

p-next=p-next-next;

free(q);

return OK;

}

int ListTraverse_L(LinkList L,int n)//鏈表的遍歷

{

int i=0;

if(!L)return ERROR;

L=L-next;

while(L)

{

if(L-data==n)return i;

L=L-next;

i++;

}

return FALSE;

}

int InverseSingleList_L(LinkList L)

{

if(!L-next||!L-next-next)//如果鏈表少于2個Node那么鏈表不需要改變順序

return OK;

LNode *p,*q;

p=L-next; //第一次因?yàn)閜是最后一個連接所以把p-next設(shè)為空

q=p-next;

p-next=NULL;

p=q;

while(p)

{

q=p-next; //用q去保留p后面一個Node;

p-next=L-next;

L-next=p;

p=q;

}

return OK;

}

int main()

{

int List[N];

LinkList L;

int ch,exit='N';

do

{

system("CLS");

printf("\t\t********************************************\n");

printf("\t\t* 1.創(chuàng)建一個順序表 .........(1) *\n");

printf("\t\t* 2.在順序表中查找元表.........(2) *\n");

printf("\t\t* 3.在順序表中插入元表.........(3) *\n");

printf("\t\t* 4.在順序表中刪除元表.........(4) *\n");

printf("\t\t* 5.退出 .........(5) *\n");

printf("\t\t********************************************\n");

printf("\n請選擇操作代碼:");

ch=getchar();

switch(ch)

{

case '1':

printf("\n請輸入十個元素");

CreatList_L(L);

for(length=0;lengthN;length++)

{

scanf("%d",List[length]);

getchar();

ListInsert_L(L,length+1,List[length]);

}

printf("\n創(chuàng)建成功!");

getchar();

break;

case '2':

scanf("%d",List[0]);

if(ListTraverse_L(L,List[0]))printf("該元素存在該年表的第%d個位置",ListTraverse_L(L,List[0]));

else printf("不存在該元素");

getchar();

break;

case '3':

scanf("%d%d",length,List[0]);

ListInsert_L(L,length,List[0]);

system("pause");

break;

case '4':

scanf("%d",length);

ListDelet_L(L,length,List[0]);

system("pause");

break;

case '5':

printf("\n您是否真的要退出程序(Y/N):");

getchar();

exit=getchar();

break;

default:

getchar();

printf("\n無效輸入,請重新選擇...:");

getchar();

break;

}

}while(exit!='y'exit!='Y');

}

數(shù)據(jù)結(jié)構(gòu)C語言

int LocateElem(Sqlist L,ElemType e)這是定義了一個函數(shù)(或者叫方法),int 是函數(shù)的返回值數(shù)據(jù)類型(整數(shù)型),LocateElem是函數(shù)名稱,后面的括號里面是參數(shù),有兩個參數(shù),Sqlist是自定義的順序表數(shù)據(jù)結(jié)構(gòu)類型(參數(shù)類型),L是第一個參數(shù)變量名,ElemType是順序表單體數(shù)據(jù)結(jié)構(gòu)類型,e是第二參數(shù)變量名。函數(shù)的作用就是在L中的elem順序表中,查找等于e的元素,如果有就返回其在順序表中的序號,沒有返回0

數(shù)據(jù)結(jié)構(gòu)c語言習(xí)題。編寫一個函數(shù)以二叉查找樹T和兩個有序的關(guān)鍵字 k1,

//?創(chuàng)建二叉樹的原數(shù)組數(shù)據(jù):?40?20?60?10?30?50?70

//?前序遍歷序列:?40?20?10?30?60?50?70

//?中序遍歷序列:?10?20?30?40?50?60?70

//?后序遍歷序列:?10?30?20?50?70?60?40

//?輸入關(guān)鍵字k1,k2的數(shù)值:?30?50

//?打印的結(jié)果:

//?40?30?50

//

//?二叉樹示意圖:

//

//???????40

//????/??????\

//???20???????60

//??/??\?????/??\

//?10??30???50???70

#include?"stdio.h"

#include?"stdlib.h"

struct?Tree

{

int?data;

struct?Tree?*left;

struct?Tree?*right;

};

typedef?struct?Tree?TreeNode;

typedef?TreeNode?*Bitree;

Bitree?insertNode(Bitree?root,int?data)?//插入結(jié)點(diǎn)

{

Bitree?newnode;

Bitree?current;

Bitree?back;

newnode=(Bitree)malloc(sizeof(TreeNode));

if(newnode==NULL)

{

printf("\n動態(tài)分配內(nèi)存出錯.\n");

exit(1);

}

newnode-data=data;

newnode-left=NULL;

newnode-right=NULL;

if(root==NULL)

{

return?newnode;

}

else

{

current=root;

while(current!=NULL)

{

back=current;

if(current-data??data)

current=current-left;

else

current=current-right;

}

if(back-data??data)

back-left=newnode;

else

back-right=newnode;

}

return?root;

}

Bitree?createTree(int?*data,int?len)?//創(chuàng)建二叉樹(非遞歸)

{

Bitree?root=NULL;

int?i;

for(i=0;ilen;i++)

{

root=insertNode(root,data[i]);

}

return?root;

}

void?preOrder(Bitree?ptr)?//先序遍歷(遞歸法)

{

if(ptr!=NULL)

{

printf("%d?",ptr-data);

preOrder(ptr-left);

preOrder(ptr-right);

}

}

void?inOrder(Bitree?ptr)?//中序遍歷(遞歸法)

{

if(ptr!=NULL)

{

inOrder(ptr-left);

printf("%d?",ptr-data);

inOrder(ptr-right);

}

}

void?postOrder(Bitree?ptr)?//后序遍歷(遞歸法)

{

if(ptr!=NULL)

{

postOrder(ptr-left);

postOrder(ptr-right);

printf("%d?",ptr-data);

}

}

//根據(jù)關(guān)鍵字k1和k2,進(jìn)行區(qū)間查找(遞歸法)

void?btreeSearch(Bitree?ptr,int?k1,int?k2)

{

if(ptr!=NULL)

{

if(ptr-data??k1??ptr-data??k2)

{

btreeSearch(ptr-right,k1,k2);

}

else?if(ptr-data?==?k1??ptr-data??k2)

{

printf("%d?",ptr-data);

btreeSearch(ptr-right,k1,k2);

}

else?if(ptr-data??k1??ptr-data??k2)

{

printf("%d?",ptr-data);

btreeSearch(ptr-left,k1,ptr-data);

btreeSearch(ptr-right,ptr-data,k2);

}

else?if(ptr-data??k1??ptr-data?==?k2)

{

printf("%d?",ptr-data);

btreeSearch(ptr-left,k1,k2);

}

else?if(ptr-data??k1??ptr-data??k2)

{

btreeSearch(ptr-left,k1,k2);

}

else?if(ptr-data?==?k1??ptr-data?==?k2)

{

printf("%d?",ptr-data);

}

else

{

printf("其它情況,當(dāng)前節(jié)點(diǎn)的數(shù)值是%d",ptr-data);

}

}

}

int?main()

{

Bitree?T=NULL;?//T是二叉查找樹

int?data[]={40,20,60,10,30,50,70};

int?len;

int?i;

int?k1,k2;?//關(guān)鍵字k1,k2

int?tmp;

len=sizeof(data)/sizeof(int);

printf("創(chuàng)建二叉樹的原數(shù)組數(shù)據(jù):?");

for(i=0;ilen;i++)

{

printf("%d?",data[i]);

}

T=createTree(data,len);?//創(chuàng)建二叉樹

printf("\n前序遍歷序列:?");

preOrder(T);

printf("\n中序遍歷序列:?");

inOrder(T);

printf("\n后序遍歷序列:?");

postOrder(T);

printf("\n輸入關(guān)鍵字k1,k2的數(shù)值:?");

scanf("%d%d",k1,k2);

if(k1k2)

{

tmp=k1;

k1=k2;

k2=tmp;

}

//根據(jù)關(guān)鍵字k1和k2,進(jìn)行區(qū)間查找(遞歸法)

btreeSearch(T,k1,k2);

printf("\n");

return?0;

}


名稱欄目:數(shù)據(jù)結(jié)構(gòu)c語言查找函數(shù),從一組數(shù)據(jù)中查找數(shù)據(jù)c語言
分享路徑:http://weahome.cn/article/dsgspcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部