A是一個結構數組,A[i].data是值,A[i].next是下標,表示下一個數據元素的位置。A[0]是線性表的表頭。當A[i].next==0時,表示A[i].data是線性表的最後一個數據元素。
透過A[0].next可以找出線性表的第一個元素的下標爲3,第一個數據元素爲A[3].data,即78,根據A[3].next也就是2,找到第二個數據元素A[2].data,即50,再根據A[2].next找到第三個元素。以此類推。
這道題的答案是:78,50,40,60,34,90
2. 數據結構中關於順序結構中的線性表的建立怎麼寫typedef struct{
int *elem;
int len;
int listsize;
}sqlist;
sqlist creat(){ //這只是建立的方法,主函數自己寫吧
sqlist L;
int n;
printf("請輸入線性表元素的個數:n");
scanf("%d",&n);
L.elem=(int*)malloc(ls*sizeof(int));
L.len=n;
L.listsize=ls;
return L;}
3. 如何把這些數據用線性表表示出來struct table tab[N]
{
char tab[0].Dest=203.74.205.0
char tab[0].Mask=255.255.255.0
char tab[0].Gate=203.74.205.1
char tab[0].Inte=203.74.205.1
char tab[1].Dest=203.74.206.0
char tab[1].Mask=255.255.255.0
char tab[1].Gate=203.74.206.1
char tab[1].Inte=203.74.206.1
char tab[2].Dest=203.74.207.0
char tab[2].Mask=255.255.255.0
char tab[2].Gate=203.74.207.1
char tab[2].Inte=203.74.207.1
char tab[3].Dest=203.74.208.0
char tab[3].Mask=255.255.255.0
char tab[3].Gate=203.74.206.2
char tab[3].Inte=203.74.206.1
};
4. C語言中怎麼定義個線性表1、定義結構體類型,這裏需要利用指針和結構體,其中m和n分別表示矩陣的行和列。
2、爲矩陣申請儲存空間,注意這裏使用了malloc()函數。
3、初始化矩陣,這裏將矩陣初始化爲m*n的數組,且矩陣中的每一個元素的值均爲0。
4、釋放存儲空間。
5、一般在定義階段就確定數組的大小,輸入數字即爲數組大小。
6、然後,可以對數組進行初始化,在花括號{}中輸入就完成了。
5. 線性表的主函數要怎麼寫/*請輸入待建立的表長 : 5請輸入5個元素用空格分開 : 56 54 34 12 76成功建立表!插入元素10。
56 10 54 34 12 76刪除第3個元素。56 10 34 12 76Press any key to continue*/#include using namespace std;#define MaxSize 100typedef int datatype;typedef struct { datatype data[MaxSize]; int last;}SeqList;void Init_SeqList(SeqList*L) { int i; cout > L->last; cout last last;i++) { cin >> L->data[i]; } cout last == MaxSize - 1) { cout L->last + 2)) { cout last;j >= i - 1;j--) L->data[j + 1] = L->data[j]; L->data[i - 1] = x; L->last++; return 1;}int Delete_SeqList(SeqList *L,int i) { int j; if((i L->last + 1)) { cout last;j++) L->data[j - 1] = L->data[j]; L->last--; return 1;}int Locate_SeqList(SeqList *L,datatype x) { int i = 0; while((i last) && (L->data[i] != x)) i++; if(i >= L->last) return -1; else return 0;}void Display_SeqList(SeqList *L) { if(L == NULL) cout last;i++) printf("%d ",L->data[i]); cout 追問: 執行不了啊。
追答: 代碼上邊的/* 。
. */中的內容是在VC下的執行結果,應該可以的。
評論0 0 0。
6. 數據結構線性表void Creat看到void Creat_Sq(SqList* L),我想問下InitList_Sq()函數的參數是否也是SqList* L類型的,由於你函數void Creat_Sq(SqList* L)參數是指針類型傳入的所以。你在主函數中定義SqList l,就不對了,應該爲SqList *l=(SqList *)malloc(sizeof(SqList));同時你的ElemType類型中的數據類型是什麼樣的,還有創建鏈表函數插入節點在頭部還是尾部等,你要說清楚才能幫你
下面是我寫的一個例子程序,基本根據你的要求來的,只是一種用戶插入方式,很簡單,僅供參考:
#include <iostream> using namespace std; #define ElemType int #define OK 1
const int LIST_INIT_SIZE=100; const int LISTINCREMENT=10;
typedef struct { ElemType * elem; int length; int listsize; int incrementsize; }SqList;
int InitList_Sq (SqList &L, int maxsize= LIST_INIT_SIZE, int incremesize= LISTINCREMENT) { L.elem = new ElemType [maxsize]; if(&L==NULL) return 0; L.length = 0; L.listsize = maxsize; L.incrementsize = incremesize; return OK; }
void Creat_Sq(SqList &L) { int i; char choose; for(i=L.length;i<L.listsize;) { cout<<"Please input the number: "; cin>>L.elem[i]; cout<<"continue to input?[n/y]"; cin>>choose; L.length++; i=L.length; if(choose=='n'||choose=='N') break; } }
void Free_Sq(SqList &L) { delete L.elem; }
void Print_Sq(SqList &L) { int i; for(i=0;i<L.length;i++) { cout<<L.elem[i]<<' '; } cout<<endl; }
int main() { SqList l; InitList_Sq(l); Creat_Sq(l); Print_Sq(l); Free_Sq(l); return 0; }
執行結果如下:
不好意思前面誤導了你一下,本來以爲你是C語言我想C語言沒有引用類型的。線性表創建不是什麼問題,難度在插入和刪除要進行數據移動的,如果還有什麼問題可以追問。
7. 寫出線性表操作的算法#include<stdio.h>
void search(int a[];int b)
{
int i=0;
while(i<10&&a[i]!=b)
i++;
if(i<10){
printf("found!");
return;
}
else
{
printf("not found");
return;
}
}
main()
{
int a[]={12,26,39,30,52,43,80,92,101,89};
search(a,b);
}